文档章节

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

吴伟祥
 吴伟祥
发布于 2018/08/13 09:59
字数 646
阅读 2.2K
收藏 3

全球数据库排行:DB-Engines Ranking

 

首先分别说明三者的概念:

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表现好!

 

最后有必要说明一下传统搜索和实时搜索:

传统搜索是从静态数据库中筛选出符合条件的结果,这种结果往往是不可变得、静态的。而实时搜索则是说用户对于搜索的结果是实时变化的。

 

本文转载自:https://blog.csdn.net/weixin_37886463/article/details/79447063

吴伟祥

吴伟祥

粉丝 34
博文 501
码字总数 285832
作品 0
泉州
后端工程师
私信 提问
加载中

评论(0)

Java搜索引擎选择: Elasticsearch与Solr(转)

Elasticsearch简介 Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组...

easonjim
2017/11/13
0
0
Elasticsearch初探(1)——基本介绍与环境搭建

版权声明:本文版权归Jitwxs所有,欢迎转载,但未经作者同意必须保留原文链接。 https://blog.csdn.net/yuanlaijike/article/details/82966110 一、Elasticsearch简介 1.1 什么是Elasticsear...

Jitwxs
2018/10/08
0
0
搜索引擎选择: Elasticsearch与Solr

搜索引擎选型调研文档 Elasticsearch简介* Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。 它可以用于全文搜索,结构化搜索以及分析,当然...

开源中国首席码农
2016/11/15
1.3K
4
当ES赶超Redis,这份ES进修攻略不容错过!

从4月DB-Engines最新发布的全球数据库排名中,我们赫然发现ElasticSearch逆袭超越了Redis,从原先的第9名上升至第8名,而Redis则落后一名,排在了其后。 事实上,这场逆袭并不算太让人意外。...

DBAplus社群
2018/04/15
0
0
全文搜索引擎选ElasticSearch还是Solr?

而且它还是其他团队在维护,依赖性太强,导致 Solr 服务一出问题,我们的项目也基本瘫痪,因为所有的依赖查询都无结果数据了。 所以考虑开发一个适配层,如果 Solr 搜索出问题,自动切换到新...

51CTO技术栈
2018/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

pandas操作excel-09-分组柱状图

import pandas as pdimport matplotlib.pyplot as pltstudents = pd.read_excel('D:/output.xlsx', index_col='idx')students.sort_values(by='M2019', inplace=True, ascending=True)......

烽焱10仴
24分钟前
48
0
java内存模型学习总结

java内存模型 复习jdk1.7虚拟机规范 了解java内存模型,需要我们对计算机硬件体系有一个基本掌握,要知道计算机里面的内存、高速缓冲、处理器、内存一致协议这些概念。 硬件系统内存模型 现代...

Owen_Jia
25分钟前
72
0
深入理解Java虚拟机_06_类文件结构

6.1 概述 如今越拉越多的语言选择了与操作系统和机器指令集无关、平台中立的格式作为程序编译后的存储格式。 6.2 无关的基石 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字...

SP_K
26分钟前
54
0
在shell的一行中运行多个命令

说我有一个文件/templates/apple并且我想要 放在两个不同的地方,然后 删除原件。 因此, /templates/apple将被复制到/templates/used和/templates/inuse ,然后在此之后,我想删除原始文件。...

javail
28分钟前
63
0
正式学习linux-6

1.文件的特殊权限 我们知道一个文件或者目录可以分别设置所有者(u)、所有组(g)、其他用户(o)的读(r)、写(w)、执行(x)权限。为弥补一般权限不能实现的工程,就有了特殊权限。 SUID...

嗨豆
36分钟前
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部