一文理解全文搜索引擎(Lucene、Elasticsearch、Solr)、目录搜索引擎、元搜索引擎的异同

白宏义
2023-12-01
一、全文搜索引擎是什么?

    计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。

    全文搜索引擎主要有:Lucene、Elasticsearch、Solr。

   Lucene,是一个开放源代码的全文检索引擎工具包,不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

   Elasticsearch,是一个基于Lucene的全文搜索服务器。提供分布式多用户能力的全文搜索引擎,基于RESTful web接口。
   Elasticsearch是用Java语言开发的,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby都是可用的。

   Solr,Solr是一个基于Lucene的全文搜索服务器,同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。
   Solr 是用Java语言开发的,是一个独立的企业级全文搜索应用服务器,对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

   根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr。

二、为什么要用全文搜索引擎?

    通过数据库提供的查询检索或者聚类分析功能,直接通过数据库查询也可以,为什么还要使用全文搜索引擎?

    1、全文索引搜索支持非结构化数据的搜索,可以更好地快速搜索大量存在的任何单词或单词组的非结构化文本;
    2、索引的维护。对于 insert 和 update 操作都会重新构建索引。

三、全文搜索引擎适用什么场景?

   1、搜索的数据对象是大量的非结构化的文本数据;
   2、文件记录量达到数数百万个甚至更多;
   3、需求非常灵活的全文搜索查询;
   4、支持大量基于交互式文本的查询。

四、目录搜索引擎

   目录搜索引擎是以人工方式或半自动方式搜集信息,人工形成信息摘要,并将信息置于事先确定的分类框架中。
   目录搜索引擎信息大多面向网站,提供目录浏览服务和直接检索服务。虽然有搜索功能,但严格意义上不能称为真正的搜索引擎。用户完全可以按照分类目录找到所需要的信息。
   优点:信息准确、导航质量高;
   缺点:是需要人工介入、维护量大、信息量少、信息更新不及时。

五、元搜索引擎

   元搜索引擎(多搜索引擎、搜索引擎之母),是一种调用其它独立搜索引擎的引擎,通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的(甚至是同时利用若干个)搜索引擎来实现检索操作,是对分布于网络的多种检索工具的全局控制机制。

 类似资料: