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建立索引(这种索引也叫倒排索引),这种以倒排索引检索数据的方式就叫全文检索;
倒排索引原理:
ES检索数据原理: