当前位置:首页 > 专栏 > 产品经理 > 正文内容

16款开源的全文搜索引擎

张小龙3个月前 (06-14)产品经理3643

全文搜索引擎就是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。

1、Apache Lucene Java 全文搜索框架

许可证:Apache-2.0

开发语言:Java

官网:https://lucene.apache.org/

Apache Lucene 是完全用 Java 编写的高性能、功能齐全的全文检索引擎架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

项目地址:https://www.oschina.net/p/lucene

2、Apache Solr 全文搜索服务器

许可证:Apache-2.0

开发语言:Java

官网:https://solr.apache.org/

Apache Solr 是基于 Lucene 的全文搜索服务器,也是最流行的企业级搜索引擎,其主要功能包括全文检索、命中高亮、分面搜索、动态聚类、数据库集成,以及对富文本(如 Word、PDF)的处理。Solr 高度可扩展,并提供了分布式搜索和索引复制,Solr 4 还增加了 NoSQL 支持。

项目地址:https://www.oschina.net/p/solr

3、Elasticsearch 分布式搜索引擎

许可证:Apache-2.0

开发语言:Java

官网:https://www.elastic.co/cn/elasticsearch/

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储你的数据,让你飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。

项目地址:https://www.oschina.net/p/elasticsearch

4、Nutch 搜索引擎

许可证:Apache-2.0

开发语言:Java

官网:https://nutch.apache.org/

Nutch 是一个开源 Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和 Web 爬虫。

Nutch 的创始人是 Doug Cutting,他同时也是 Lucene、Hadoop 和 Avro 开源项目的创始人。

项目地址:https://www.oschina.net/p/nutch

5、RediSearch 高性能全文搜索引擎

许可证:AGPL

开发语言:C/C++

官网:https://redis.io/docs/stack/search/

RediSearch 是一个高性能的全文搜索引擎,可作为一个 Redis Module 运行在 Redis 上,是由 RedisLabs 团队开发的。实现了Redis的查询、二级索引和全文搜索。这些功能在文本查询的基础上实现了多字段查询、聚合、精确短语匹配、数字过滤、地理过滤和矢量相似性语义搜索。

项目地址:https://www.oschina.net/p/redisearch

6、Sphinx Search 全文搜索引擎

许可证:GPL

开发语言:C/C++

官网:http://sphinxsearch.com/

Sphinx 是一个开源的全文搜索服务器,从头开始设计时就考虑到了性能、相关性(又名搜索质量)和集成的简单性。它是用 C++ 编写的,适用于 Linux(RedHat、Ubuntu 等)、Windows、MacOS、Solaris、FreeBSD 和其他一些系统。

Sphinx 让你可以快速轻松地批量索引和搜索存储在 SQL 数据库、NoSQL 存储或文件中的数据,或者即时索引和搜索数据,使用 Sphinx 就像使用数据库服务器一样。各种文本处理功能可以根据你的特定应用程序要求微调 Sphinx,并且许多相关功能确保你也可以调整搜索质量。

项目地址:https://www.oschina.net/p/sphinxsearch

网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

7、ftserver 轻量精准全文搜索服务器

开发语言:Java

FTServer (FTS) 是一个轻量精准全文搜索服务器,使用英文规则处理英文,使用中文规则处理中文,不需要切割中文为单词,可以支持中文字的任意排列,精准搜索中文长句子,轻松处理古文古诗词,写意句子不影响搜索,不依赖词库,搜索中文不漏词。非常容易按需定制,直接编译就可以使用,无需额外配置,同时可以嵌入到各种应用内部。

项目地址:https://www.oschina.net/p/ftserver

8、Xapian C++检索引擎

许可证:GPL

开发语言:C/C++

官网:https://xapian.org/

Xapian 是一个用 C++ 编写的全文检索程序,他的作用类似于 Java 的 lucene。尽管在 Java 世界 lucene 已经是标准的全文检索程序,但是 C/C++ 世界并没有相应的工具,而 Xapian 则填补了这个缺憾。

Xapian 是一个高度适应性的工具包,它允许开发人员轻松地将高级索引和搜索工具添加到他们自己的应用程序中。它内置支持多个权重模型系列,还支持一组丰富的布尔查询运算符。

项目地址:https://www.oschina.net/p/xapian

9、Hibernate Search Hibernate搜索框架

许可证:LGPL

开发语言:Java

官网:https://hibernate.org/search/

Hibernate Search 的作用是对数据库中的数据进行检索的。它是 hibernate 对著名的全文检索系统 Lucene 的一个集成方案,作用在于对数据表中某些内容庞大的字段(如声明为 text 的字段)建立全文索引,这样通过 hibernate search 就可以对这些字段进行全文检索后获得相应的 POJO,从而加快了对内容庞大字段进行模糊搜索的速度(sql 语句中 like 匹配)。

Hibernate Search 自动从 Hibernate ORM 实体中提取数据,以将其推送到本地 Apache Lucene 索引或远程 Elasticsearch 索引。

项目地址:https://www.oschina.net/p/hibernate+search

10、MeiliSearch 轻量搜索引擎

许可证:MIT

开发语言:Rust

官网:https://www.meilisearch.com/

网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

Meilisearch 是 Rust 实现的高性能开源搜索引擎,支持方便地集成到任何网站或应用程序,支持自托管 (self-hosting),可作为 Algolia 和 Elasticsearch 的轻量替代方案。Meilisearch 内置了许多实用功能,比如:

快速的输入即搜索 (search-as-you-type) 体验,也称作 “即时搜索”

支持冗错 / 纠错搜索 (typo tolerance)

支持多面搜索 (faceted search)

支持基于地理位置的搜索 (geosearch)

支持多租户 (multi-tenancy)

Meilisearch 提供了一整套完整的 SDK 和库,让开发者便捷地将其连接到流行的编程语言和 Web 工具。Meilisearch 的搜索功能支持所有语言,对任何使用空格分隔单词的语言以及中文、日语、希伯来语、泰语和韩语都进行了特殊优化。

项目地址:https://www.oschina.net/p/meilisearch

11、Manticore Search C++ 开发的高性能搜索引擎

许可证:GPL-2.0

开发语言:C/C++

官网:https://manticoresearch.com/

Manticore Search 是一个使用 C++ 开发的高性能搜索引擎,创建于 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,显着改进了它的功能,修复了数百个错误,几乎完全重写了代码并保持开源!这一切使 Manticore Search 成为一个现代,快速,轻量级和功能齐全的数据库,具有出色的全文搜索功能。

来自 MS 官方的测试表明 Manticore Search 性能比 ElasticSearch 有很大的提升。

项目地址:https://www.oschina.net/p/manticoresearch

12、Tantivy 全文搜索引擎库

许可证:MIT 开发语言:Rust

Tantivy 是一个用 Rust 编写的搜索引擎库,其灵感来自于 Lucene。得益于 Rust 语言加持,Tantivy 性能比 Lucene 要好得多。

项目地址:https://www.oschina.net/p/tantivy

13、Tantiny Ruby 全文搜索引擎库

许可证:MIT

开发语言:Ruby、SHELL、Rust

Tantiny 是一个基于 Tantivy 的 Ruby 的最小化全文搜索库。当你手头的任务需要全文搜索,但配置一个完整的分布式搜索引擎会比任务本身花费更多的时间时,它是非常好的选择。

网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

即使你已经在你的项目中使用了这样的引擎(实际上这是很有可能的),使用 Tantiny 仍然可能更容易,因为与 Solr 和 Elasticsearch 不同,它不需要任何东西来工作(没有单独的服务器或进程或其他什么),它是纯粹的可嵌入的。所以,当你发现自己在使用你所选择的搜索引擎会很麻烦 / 不方便,或者需要额外的设置时,你总是可以回到一个快速和肮脏的解决方案,但还是很灵活和快速。

Tantiny 并不完全是对 Tantivy 的 Ruby 绑定,但它试图接近。主要理念是提供对 Tantivy 倒排索引的低级访问,但具有漂亮的 Ruby 风格的 API、合理的默认设置和附加功能。

项目地址:https://www.oschina.net/p/tantiny

14、DataparkSearch 搜索引擎

许可证:GPL-2.0

开发语言:C/C++

官网:http://www.dataparksearch.org/

DataparkSearch 搜索引擎是一个 C 语言的全功能的开源基于 Web 的搜索引擎。

项目地址:https://www.oschina.net/p/dataparksearch

15、GoFound 基于 Go 的全文检索引擎

许可证:Apache-2.0

开发语言:Google Go

GoFound 是一个 go 语言全文检索引擎, 基于平衡二叉树 + 正排索引、倒排索引实现。可支持亿级数据、毫秒级查询。使用简单,使用 http 接口,任何系统都可以使用。技术栈:

平衡二叉查找树

二分法查找

快速排序法

倒排索引

正排索引

文件分片

golang-jieba 分词

leveldb

项目地址:https://www.oschina.net/p/gofound

16、Compass 搜索引擎

许可证:Apache-2.0

开发语言:Java、Perl

官网:http://www.compass-project.org/

Compass 是一个建立在 Lucene 之上的开源项目,旨在简化搜索与任何 Java 应用的整合。Compass 提供了广泛的功能,旨在集成搜索引擎功能。下图显示了不同的 Compass 模块,然后是每个模块的简短描述。

项目地址:https://www.oschina.net/p/compass


扫描二维码推送至手机访问。

版权声明:本文由字母汇发布,如需转载请注明出处。

本文链接:https://www.izzi.cn/post/153992.html

分享给朋友:

“16款开源的全文搜索引擎” 的相关文章

产品要快速迭代吗

在互联网行业,快速迭代是非常重要的。以下是一些原因:1 抢占市场:互联网行业竞争激烈,市场变化迅速。通过快速迭代,可以更快地推出新功能或产品,抢占市场份额,确保自己处于竞争的前沿。2 用户反馈:快速迭代使得产品能够更快地获得用户反馈。通过收集用户的意见和建议,可以及时调整产品,提高用户体验,满足用户...

产品经理需要掌握什么知识

作为产品经理,需要掌握以下知识:产品理解:深入了解所负责的产品,包括产品的功能、目标用户、市场竞争情况等。通过对产品的全面理解,能够更好地制定产品策略和规划。用户研究:了解用户需求和行为,通过用户调研、用户访谈、数据分析等方法,获取对用户的深入洞察。这有助于产品经理更好地理解用户需求,设计出更符合用...

怎么理解产品的糙快猛

"糙快猛"是一种常用于描述产品开发和迭代过程的概念,它强调了在快速迭代中的三个关键要素:糙:指的是产品在初期阶段可能会存在一些不完善或粗糙的特性或设计。这是因为在快速迭代中,产品经理和团队可能会采用"先行动,再完善"的策略,即快速推出产品的初版,然后根据用户反...

为什么有些产品逐渐消失了

有些产品逐渐消失的原因可能包括以下几个方面:技术进步:随着技术的不断发展和进步,新的产品和解决方案可能会取代旧有的产品。新技术的出现可能会提供更高效、更便捷、更具创新性的解决方案,从而导致旧有产品的逐渐淘汰。变化的市场需求:市场需求是不断变化的,消费者的偏好和需求也在不断演变。如果一款产品无法适应市...

如何了解产品市场空间大小

了解产品的市场空间大小可以通过以下几种方式:市场调研:进行市场调研是了解产品市场空间大小的重要手段之一。通过调研目标市场的规模、增长趋势、竞争情况、用户需求等信息,可以初步评估产品在市场中的潜在空间。竞争分析:进行竞争分析可以帮助了解产品在市场中的位置和潜在空间。研究竞争对手的产品特点、市场份额、用...

解读产品能力有哪些方法

产品经理需要掌握多种方法来开展产品能力的相关工作。以下是对产品能力的不同方面的详细解读以及相关的方法:商业分析方法:SWOT分析:评估产品或企业的优势、劣势、机会和威胁,帮助制定战略和决策。PESTEL分析:分析政治、经济、社会、技术、环境和法律等因素对产品或企业的影响。竞争对手分析:调研和分析竞争...