关于开源的搜索引擎的一个简单介绍-LuceneLucene
优采云 发布时间: 2021-05-14 20:06关于开源的搜索引擎的一个简单介绍-LuceneLucene
本文档是对现有开源搜索引擎的简要介绍
1. Lucene
Lucene的开发语言是Java,它也是Java家族中最著名的开源搜索引擎。它已经是Java世界中的标准全文搜索程序。它提供了完整的查询引擎和索引引擎,而没有中文分词引擎。您需要自己实现它,因此使用Lucene构建搜索引擎需要它自己的体系结构。另外,它不支持实时搜索,但是linkedin和twitter改进了Lucene实时搜索。其中,Lucene具有C ++移植版本,称为CLucene。由于CLucene是用C ++编写的,因此从理论上讲它比Lucene快。
官方主页:
CLucene官方主页:
2.狮身人面像
Sphinx是一个用C ++编写的开源搜索引擎,它也是更为主流的搜索引擎之一。就索引事件而言,它比Lucene快50%,但索引文件的大小是Lucene的两倍,因此Sphinx成为索引事件的基础。在搜索速度方面,它与Lucene并没有太大区别,但是在搜索准确性方面,Lucene优于Sphinx。此外,就添加中文分词引擎的难度而言,Lucene比Sphinx更好。其中,Sphinx支持实时搜索,使用起来比较简单方便。
官方主页:
3. Xapian
Xapian是用C ++编写的全文本搜索程序。它的api和搜索原理在许多方面与Lucene相似,并且可以被视为填补了C ++中Lucene的空白。
官方主页:
4. Nutch
Nutch是用Java实现的开源Web搜索引擎,包括采集器,索引引擎和查询引擎。其中,Nutch基于Lucene,Lucene为Nutch提供了文本索引和搜索API。
对于是否应使用Lucene或Nutch,如果不需要爬网数据,则应使用Lucene。最常见的应用程序是:您有一个数据源,并且需要为数据提供搜索页面,在这种情况下,最好的方法是直接从数据库中检索数据并使用Lucene API来建立索引。
官方主页:
5. DataparkSearch
DataparkSearch是使用C语言实现的开源搜索引擎。网页排名使用神经网络模型。它支持HTTP,HTTPS,FTP,NNTP和其他下载网页。包括索引引擎,搜索引擎和中文分词引擎(这也是唯一具有中文分词引擎的开源搜索引擎)。它可以个性化搜索结果并具有完整的日志记录。
官方主页:
6.齐塔尔
Zettair是基于Justin Zobel的研究成果的全文检索实验系统。它是用C语言实现的。其中,贾斯汀·佐贝尔(Justin Zobel)在全文检索领域广为人知,并且是业内第一个提出反向排序索引差分压缩的系统。对于算法学家来说,反向列表的压缩极大地提高了检索和加载的性能,同时空间扩展率也降低到了很好的水平。由于Zettair起源于学术界,因此该代码是由RMIT大学的搜索引擎组织编写的。因此,其代码简洁明了,算法高效。这是学习反向索引经典算法的一个很好的例子。它支持linux,windows,mac os和其他系统。
官方主页:
7. Indri
Indri是一个用C和C ++编写的全文本搜索引擎系统。这是马萨诸塞大学和卡内基梅隆大学共同发起的一个开源项目。它的特点是跨平台,API接口支持Java,PHP,C ++。
官方主页:
8.梗
Terrier是由格拉斯哥大学计算机科学学院使用Java开发的全文本搜索系统。
官方主页:
9. Galago
Galago是用Java语言编写的用于文本搜索的工具集。它包括一个索引引擎和一个查询引擎,以及一个称为TupleFlow的分布式计算框架(类似于Google的MapReduce)。该检索系统支持许多Indri查询语言。
官方主页:
1 0.斑马
Zebra是一种用C语言实现的检索程序,其特点是支持大数据,并支持EMAIL,XML,MARC和其他格式的数据。
官方主页:
1 1. Solr
Solr是用Java开发的独立企业级搜索应用程序服务器。它提供类似于Web服务的API接口。它是基于Lucene的全文本搜索服务器。它也是Lucene的变体。许多一线互联网公司都在使用Solr,这也是一种成熟的解决方案。
官方主页:
1 2. Elasticsearch
Elasticsearch是使用Java语言开发的基于Lucene的开源分布式搜索引擎。专为云计算而设计,它可以实现实时搜索,并且稳定可靠。 Elasticsearch的数据模型是JSON。
官方主页:
1 3.糟糕
Whoosh是一个用纯python编写的开源搜索引擎。
官方主页: