https://opensemanticsearch.org
开放语义搜索是:
此 README.md 是面向软件开发人员的文档。
用户和管理员的文档包含在软件包/图像中,并链接在搜索用户界面(菜单“帮助”)中。
您可以在docs/doc/modules/README.md
中找到搜索引擎架构的文档。
此集成 HTML 文档由静态站点生成器 MkDocs 使用配置文件mkdocs.yml
生成。
文档的来源(Markdown 格式)和图表(mermaid 格式)可在目录docs
中编辑。
如何构建用于在 Debian 或 Ubuntu 服务器上安装的 deb 软件包或用于在 Docker 容器中运行的 docker 映像:
克隆包含依赖项的存储库:
git clone --recurse-submodules --remote-submodules https://github.com/opensemanticsearch/open-semantic-search.git
cd open-semantic-search
要为Debian GNU/Linux或Ubuntu Linux构建deb
软件包,请以 root 用户身份调用构建脚本build-deb
(通过su
或sudo su
更改用户):
./build-deb
如何为VirtualBox构建开放语义桌面搜索设备记录在src/open-semantic-desktop-search/README.md
中。
使用默认的 docker-compose 配置docker-compose.yml
构建 Docker 镜像:
docker-compose build
构建完成后,所有 Docker 镜像/依赖项/服务都可以通过 docker-compose 使用配置文件docker-compose.yml
一起启动。
您可以通过运行以下命令来启动整个环境:
docker-compose up
这将在端口8080
上公开 Web 用户界面。
您可以通过以下 URL 在您喜欢的浏览器中浏览开放语义搜索用户界面:
http://localhost:8080/search/
对于 CI/CD 有一些不同的自动化测试:
由于子模块 Open Semantic ETL 使用并需要不同的强大服务,例如通过 HTTP 和 REST-API 实现的 Solr、spaCy-services 或 Tika-Server,因此许多自动化测试在docker-compose.etl.test.yml
以便这些服务在运行单元测试和集成测试时可用。
docker-compose -f docker-compose.etl.test.yml build
docker-compose -f docker-compose.etl.test.yml up
Web 浏览器内的一些自动化集成测试和端到端 (E2E) 测试由浏览器自动化框架 Playwright 和基于 node.js / javascript 的测试框架 JEST 控制。
您可以在test/test.js
中扩展自动化测试
它们通过 docker 镜像Dockerfile-test
运行,并需要 docker-compose 环境docker-compose.test.yml
的服务:
docker-compose -f docker-compose.test.yml build
docker-compose -f docker-compose.test.yml up
通过构建或安装 Debian 或 Ubuntu 软件包或构建 Docker 映像,可以自动解决依赖关系。
有关此依赖项的文档可能有助于调试依赖项地狱问题或其他环境中的安装:
对其他 Git 存储库/组件子模块(例如 Open Semantic ETL)的依赖关系在 Git 配置文件.gitmodules
中定义
如果您通过 git 以递归模式检出此存储库,子模块将自动检出到子目录src
。
子模块src/tika-server.deb
和src/solr.deb
需要 Apache Tika-Server 和 Apache Solr 的 JAR。
如果不存在,它们将通过build-deb
脚本中的 wget 或子模块Dockerfile
从 Apache Software Foundation 下载。
Debian 或 Ubuntu 软件包存储库中提供的工具和库的依赖项在 deb 软件包配置文件DEBIAN/control
的Depends
部分中定义
Python 库的依赖项不作为 Linux 发行版的包提供,但在 Python 包索引 (PyPI) 中定义,定义于
src/open-semantic-etl/src/opensemanticetl/requirements.txt
此依赖项将在安装 Debian/Ubuntu 软件包时通过 Debian/Ubuntu 软件包的DEBIAN/postinst
脚本或通过Dockerfile
配置的 docker build 自动安装
pip3 install -r /usr/lib/python3/dist-packages/opensemanticetl/requirements.txt
大多数贡献者不会在 Github 用户界面中显示为该存储库的“贡献者”,因为该主存储库由 Git 子模块(如Open Semantic ETL和其他模块)构成,这些子模块在单独的 Git(hub) 存储库中进行管理。
感谢所有(现任和前任)贡献者:
如果您以不同形式做出贡献/支持/赞助,请随意扩展。