Lucene、solr以及elasticsearch之间的区别和联系

Lucene、solr以及elasticsearch之间的区别和联系

Lucene、solr以及elasticsearch之间的区别和联系

  • lucene,就是一个jar包,里面包含了封装好的各种建立倒排索引、以及进行搜索的代码,包括各种算法。我们就用java开发的时候,引入lucene jar,然后基于lucene的api去进行开发就可以了。solr和elasticsearch都是基于lucene做的一些封装
  • Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了很多Lucene细节,自己的应用可以直接利用诸如【 …/solr?q=abc】这样的HTTP (GET/POST)请求去查询,维护修改索引。
  • Elasticsearch是一个分布式搜索引擎,采用倒排索引将每一个字段都编入索引,使其可以被搜索
  • solr以及elasticsearch之间的区别:
    • solr利用zookpper进行分布式管理,而elasticsearch自身带有分布式协调管理功能
    • solr比elasticsearch提供的功能多,elasticsearch更注 重于核心功能,高级功能则由第三方插件提供
    • elasticsearch在实时搜索方面比solr表现好

什么是全文检索、倒排索引

  • 全文检索:以中文文章中的每一个词作为key,该词出现在文章中的(次数和位置)作为value建立索引(这种索引也叫倒排索引),这种以倒排索引检索数据的方式就叫全文检索;

倒排索引原理:

image

ES检索数据原理:

image

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Lucene、solr以及elasticsearch之间的区别和联系