这篇文章给大家聊聊关于全文搜索引擎,以及开源全文搜索引擎对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
许可证:Apache-2.0开发语言:Java官网:https://lucene.apache.org/ApacheLucene是完全用Java编写的高性能、功能齐全的全文检索引擎架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。
许可证:Apache-2.0开发语言:Java官网:https://solr.apache.org/ApacheSolr是基于Lucene的全文搜索服务器,也是最流行的企业级搜索引擎,其主要功能包括全文检索、命中高亮、分面搜索、动态聚类、数据库集成,以及对富文本(如Word、PDF)的处理。Solr高度可扩展,并提供了分布式搜索和索引复制,Solr4还增加了NoSQL支持。
许可证:Apache-2.0开发语言:Java官网:https://www.elastic.co/cn/elasticsearch/Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为ElasticStack的核心,Elasticsearch会集中存储你的数据,让你飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。
许可证:Apache-2.0开发语言:Java官网:https://nutch.apache.org/Nutch是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。Nutch的创始人是DougCutting,他同时也是Lucene、Hadoop和Avro开源项目的创始人。
许可证:AGPL开发语言:C/C++官网:https://redis.io/docs/stack/search/RediSearch是一个高性能的全文搜索引擎,可作为一个RedisModule运行在Redis上,是由RedisLabs团队开发的。实现了Redis的查询、二级索引和全文搜索。这些功能在文本查询的基础上实现了多字段查询、聚合、精确短语匹配、数字过滤、地理过滤和矢量相似性语义搜索。
许可证:GPL开发语言:C/C++官网:http://sphinxsearch.com/Sphinx是一个开源的全文搜索服务器,从头开始设计时就考虑到了性能、相关性(又名搜索质量)和集成的简单性。它是用C++编写的,适用于Linux(RedHat、Ubuntu等)、Windows、MacOS、Solaris、FreeBSD和其他一些系统。Sphinx让你可以快速轻松地批量索引和搜索存储在SQL数据库、NoSQL存储或文件中的数据,或者即时索引和搜索数据,使用Sphinx就像使用数据库服务器一样。各种文本处理功能可以根据你的特定应用程序要求微调Sphinx,并且许多相关功能确保你也可以调整搜索质量。
开发语言:JavaFTServer(FTS)是一个轻量精准全文搜索服务器,使用英文规则处理英文,使用中文规则处理中文,不需要切割中文为单词,可以支持中文字的任意排列,精准搜索中文长句子,轻松处理古文古诗词,写意句子不影响搜索,不依赖词库,搜索中文不漏词。非常容易按需定制,直接编译就可以使用,无需额外配置,同时可以嵌入到各种应用内部。
许可证:GPL开发语言:C/C++官网:https://xapian.org/Xapian是一个用C++编写的全文检索程序,他的作用类似于Java的lucene。尽管在Java世界lucene已经是标准的全文检索程序,但是C/C++世界并没有相应的工具,而Xapian则填补了这个缺憾。Xapian是一个高度适应性的工具包,它允许开发人员轻松地将高级索引和搜索工具添加到他们自己的应用程序中。它内置支持多个权重模型系列,还支持一组丰富的布尔查询运算符。
许可证:LGPL开发语言:Java官网:https://hibernate.org/search/HibernateSearch的作用是对数据库中的数据进行检索的。它是hibernate对著名的全文检索系统Lucene的一个集成方案,作用在于对数据表中某些内容庞大的字段(如声明为text的字段)建立全文索引,这样通过hibernatesearch就可以对这些字段进行全文检索后获得相应的POJO,从而加快了对内容庞大字段进行模糊搜索的速度(sql语句中like匹配)。HibernateSearch自动从HibernateORM实体中提取数据,以将其推送到本地ApacheLucene索引或远程Elasticsearch索引。
许可证:MIT开发语言:Rust官网:https://www.meilisearch.com/Meilisearch是Rust实现的高性能开源搜索引擎,支持方便地集成到任何网站或应用程序,支持自托管(self-hosting),可作为Algolia和Elasticsearch的轻量替代方案。Meilisearch内置了许多实用功能,比如:快速的输入即搜索(search-as-you-type)体验,也称作“即时搜索”支持冗错/纠错搜索(typotolerance)支持多面搜索(facetedsearch)支持基于地理位置的搜索(geosearch)支持多租户(multi-tenancy)Meilisearch提供了一整套完整的SDK和库,让开发者便捷地将其连接到流行的编程语言和Web工具。Meilisearch的搜索功能支持所有语言,对任何使用空格分隔单词的语言以及中文、日语、希伯来语、泰语和韩语都进行了特殊优化。
许可证:GPL-2.0开发语言:C/C++官网:https://manticoresearch.com/ManticoreSearch是一个使用C++开发的高性能搜索引擎,创建于2017年,其前身是SphinxSearch。ManticoreSearch充分利用了Sphinx,显着改进了它的功能,修复了数百个错误,几乎完全重写了代码并保持开源!这一切使ManticoreSearch成为一个现代,快速,轻量级和功能齐全的数据库,具有出色的全文搜索功能。来自MS官方的测试表明ManticoreSearch性能比ElasticSearch有很大的提升。
许可证:MIT开发语言:RubyTantivy是一个用Rust编写的搜索引擎库,其灵感来自于Lucene。得益于Rust语言加持,Tantivy性能比Lucene要好得多。
许可证:MIT开发语言:Ruby、SHELL、RustTantiny是一个基于Tantivy的Ruby的最小化全文搜索库。当你手头的任务需要全文搜索,但配置一个完整的分布式搜索引擎会比任务本身花费更多的时间时,它是非常好的选择。即使你已经在你的项目中使用了这样的引擎(实际上这是很有可能的),使用Tantiny仍然可能更容易,因为与Solr和Elasticsearch不同,它不需要任何东西来工作(没有单独的服务器或进程或其他什么),它是纯粹的可嵌入的。所以,当你发现自己在使用你所选择的搜索引擎会很麻烦/不方便,或者需要额外的设置时,你总是可以回到一个快速和肮脏的解决方案,但还是很灵活和快速。Tantiny并不完全是对Tantivy的Ruby绑定,但它试图接近。主要理念是提供对Tantivy倒排索引的低级访问,但具有漂亮的Ruby风格的API、合理的默认设置和附加功能。
许可证:GPL-2.0开发语言:C/C++官网:http://www.dataparksearch.org/DataparkSearch搜索引擎是一个C语言的全功能的开源基于Web的搜索引擎。
许可证:Apache-2.0开发语言:GoogleGoGoFound是一个go语言全文检索引擎,基于平衡二叉树+正排索引、倒排索引实现。可支持亿级数据、毫秒级查询。使用简单,使用http接口,任何系统都可以使用。技术栈:平衡二叉查找树二分法查找快速排序法倒排索引正排索引文件分片golang-jieba分词leveldb
许可证:Apache-2.0开发语言:Java、Perl官网:http://www.compass-project.org/Compass是一个建立在Lucene之上的开源项目,旨在简化搜索与任何Java应用的整合。Compass提供了广泛的功能,旨在集成搜索引擎功能。下图显示了不同的Compass模块,然后是每个模块的简短描述。
OK,关于全文搜索引擎和开源全文搜索引擎的内容到此结束了,希望对大家有所帮助。