open-semantic-search:集成搜索服务器与ETL框架,支持全文、分面及知识图谱搜索

Open Source research tool to search, browse, analyze and explore large document collections by Semantic Search Engine and Open Source Text Mining & Text Analytics platform (Integrates ETL for document processing, OCR for images & PDF, named entity recognition for persons, organizations & locations, metadata management by thesaurus & ontologies, search user interface & search apps for fulltext search, faceted search & knowledge graph)

分支1Tags0
文件最后提交记录最后更新时间
6 年前
4 年前
1 年前
3 年前
5 年前
3 年前
5 年前
3 年前
4 年前
5 年前
10 年前
3 年前
4 年前
4 年前
5 年前
4 年前
4 年前
3 年前
4 年前

开放语义搜索

https://opensemanticsearch.org

开放语义搜索是:

  • 一个一体化的搜索服务器,
  • 文档处理的ETL框架(爬取、文本提取、文本分析、命名实体识别及图像和PDF内嵌图像的OCR),
  • 搜索用户界面、文本挖掘、文本分析以及全文搜索、分面搜索、探索性搜索和知识图谱搜索的应用程序。

文档

此README.md是面向软件开发者的文档。

针对用户和管理员的文档

针对用户和管理员的文档包含在软件包/镜像中,并在搜索用户界面(“帮助”菜单)中链接。

软件架构

你可以在docs/doc/modules/README.md中找到搜索引擎架构的文档。

文档格式

这个集成的HTML 文档 是由静态站点生成器MkDocs使用配置文件mkdocs.yml生成的。

文档源码(Markdown格式)和图表(Mermaid格式)可在目录docs中编辑。

构建

如何在Debian或Ubuntu服务器上构建deb包,或在Docker容器中运行Docker镜像:

克隆Git仓库

克隆包含依赖项的仓库:

git clone --recurse-submodules --remote-submodules https://github.com/opensemanticsearch/open-semantic-search.git
cd open-semantic-search

构建deb包

要为Debian GNU/Linux 或 Ubuntu Linux 构建deb包,以root用户身份(通过su或sudo su切换用户)执行构建脚本build-deb:

./build-deb

构建桌面搜索虚拟机

如何为VirtualBox构建开放语义桌面搜索设备的文档位于 src/open-semantic-desktop-search/README.md。

构建Docker镜像

使用默认的docker-compose配置docker-compose.yml构建Docker镜像:

docker-compose build

运行Docker容器

构建完成后,所有Docker镜像/依赖项/服务可以通过使用配置文件docker-compose.yml一起启动。

你可以运行以下命令启动整个环境:

docker-compose up

这将在端口8080上暴露Web用户界面。

你可以在最喜欢的浏览器中浏览开放语义搜索用户界面,网址为:

http://localhost:8080/search/

自动化测试

为了CI/CD,有一些不同的自动化测试:

集成测试

由于子模块Open Semantic ETL需要通过HTTP和REST-API访问如Solr、spaCy-services或Tika-Server等强大的服务,许多自动化测试作为集成测试在配置了docker-compose.etl.test.yml的docker-compose环境中运行,以便在运行单元测试和集成测试时这些服务可用。

docker-compose -f docker-compose.etl.test.yml build
docker-compose -f docker-compose.etl.test.yml up

端到端测试

一些自动化的集成测试和端到端(E2E)测试在受控于浏览器自动化框架Playwright和基于Node.js / JavaScript的测试框架JEST的网页浏览器中进行。

你可以在test/test.js中扩展自动化测试。

它们由Dockerfile-test中的Docker镜像运行,并需要docker-compose.test.yml中的docker-compose环境的服务:

docker-compose -f docker-compose.test.yml build
docker-compose -f docker-compose.test.yml up

依赖项

依赖项通过构建或安装Debian或Ubuntu包或构建Docker镜像自动解决。

关于可能有助于调试依赖问题或其他环境下安装的依赖关系的文档包括:

对源代码(GIT)的构建依赖项

如Open Semantic ETL等组件的其他Git仓库/子模块的依赖关系在Git配置文件.gitmodules中定义。

如果你以递归模式通过git检出此仓库,子模块将自动检出到子目录src。

Java存档(JAR)的打包依赖项

子模块src/tika-server.deb和src/solr.deb需要Apache Tika-Server和Apache Solr的JAR。

如果不存在,它们将在build-deb脚本或子模块Dockerfile中通过wget从Apache软件基金会下载。

Debian/Ubuntu包(DEB)的安装依赖项

在Linux发行版的软件库中可用的工具和库的依赖项在deb包配置文件DEBIAN/control的Depends部分中定义。

Python包(PIP)的安装依赖项

在Linux发行版的软件库中不可用但在Python包索引(PyPI)中可用的Python库的依赖项在以下位置定义:

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)仓库中管理。

因此,感谢所有(现任和前任)贡献者:

  • Markus Mandalka (@mandalka)
  • @g-braeunlich
  • @maehr
  • @sdinten
  • @wsldankers
  • @rivimey
  • @rbussche
  • @mosea3
  • @bhelou
  • @hpiedcoq
  • @andreclinio
  • @agharbeia
  • @ciyer
  • @davidshq ...

如果你以不同形式贡献、支持或赞助过,也请自由添加到列表中。

项目介绍

开源研究工具,通过语义搜索引擎和开源文本挖掘及文本分析平台进行搜索、浏览、分析和探索大规模文档集合(集成了文档处理的ETL、图像及PDF的OCR、针对人名、组织名和地点的命名实体识别、通过词库和本体进行元数据管理、全文搜索、分面搜索和知识图谱的搜索用户界面及搜索应用)。【此简介由AI生成】

定制我的领域
551.21 K200访问 GitHub