最代码官方的gravatar头像
最代码官方2020-03-29 10:37:12

哪个牛牛能说清楚ElasticSearch,solr,lucene的区别和联系?

最近在优化最代码的搜索机制,通过luke可以查看所有lucene的索引文件,ElasticSearch好像也可以,哪位牛牛能更清楚的说下他们几个的区别和联系

所有回答列表(2)
lzj1239825268的gravatar头像
lzj1239825268 LV24月2日

我是个小白 ,我只知道

首先分别说明三者的概念:
Lucene是一套信息检索工具包,并不包含搜索引擎系统,它包含了索引结构、读写索引工具、相关性工具、排序等功能,因此在使用Lucene时仍需要关注搜索引擎系统,例如数据获取、解析、分词等方面的东西。而solr和elasticsearch都是基于该工具包做的一些封装。

Solr是一个有HTTP接口的基于Lucene的查询服务器,封装了很多Lucene细节,自己的应用可以直接利用诸如 .../solr?q=abc 这样的HTTP GET/POST请求去查询,维护修改索引。

Elasticsearch也是一个建立在全文搜索引擎 Apache Lucene基础上的搜索引擎。采用的策略是分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。

Lucene使用上更加灵活,但是你需要自己处理搜素引擎系统架构,以及其他附加附加功能的实现。而Solr帮你做了更多,但是是一个处于高层的框架,Lucene很多新特性不能及时向上透传,所以有时候可能发现需要一个功能,Lucene是支持的,但是Solr上已经看不到相关接口。

然后说明三者之间的区别
首先说明三者之间的一个联系:solr和elasticsearch都是基于Lucene实现的!
其次
solr利用zookpper进行分布式管理,而elasticsearch自身带有分布式协调管理功能;
solr比elasticsearch实现更加全面,solr官方提供的工恩能够更多,而elasticsearch本身更注 重于核心功能,高级功能多由第三方插件提供;
solr在传统的搜索应用中表现好于elasticsearch,而elasticsearch在实时搜索应用方面比solr表现好。

评论(0)最佳答案
筱进GG的gravatar头像
筱进GG LV384月3日
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友