ElasticSearch和solr的差别

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Elasticsearch简介Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。它用于全文搜索、结构化搜索、分析以及将这三者混合使用:维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。

 

Elasticsearch简介

Elasticsearch是一个实时分布式搜索和分析引擎。它让你以前所未有的速度处理大数据成为可能。
它用于全文搜索、结构化搜索、分析以及将这三者混合使用:
维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-asyou-type)和搜索纠错(did-you-mean)等搜索建议功能。
英国卫报使用Elasticsearch结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了解公众对新发表的文章的回应。
StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案。
Github使用Elasticsearch检索1300亿行的代码。
但是Elasticsearch不仅用于大型企业,它还让像DataDog以及Klout这样的创业公司将最初的想法变成可扩展的解决方案。Elasticsearch可以在你的笔记本上运行,也可以在数以百计的服务器上处理PB级别的数据 。

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏Lucene的复杂性,从而让全文搜索变得简单。

Solr简介

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化

Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引 。Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。

solr是基于lucene开发企业级搜索服务器,实际上就是封装了lucene。

Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的文件,生成索引;也可以通过提出查找请求,并得到返回结果。

Lucene简介

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。

Lucene是一个全文检索引擎的架构。那什么是全文搜索引擎?

全文搜索引擎是名副其实的搜索引擎,国外具代表性的有Google、Fast/AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut等,国内著名的有百度(Baidu)。它们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此他们是真正的搜索引擎。

从搜索结果来源的角度,全文搜索引擎又可细分为两种,一种是拥有自己的检索程序(Indexer),俗称“蜘蛛”(Spider)程序或“机器人”(Robot)程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的7家引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。

Elasticsearch和Solr比较

ElasticSearch vs Solr 总结

  (1)es基本是开箱即用,非常简单。Solr安装略微复杂一丢丢,可关注(solr6.6教程-基础环境搭建(一)

  (2)Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能。

  (3)Solr 支持更多格式的数据,比如JSON、XML、CSV,而 Elasticsearch 仅支持json文件格式。

  (4)Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibana友好支撑

  (5)Solr 查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;

      ES建立索引快(即查询慢),即实时性查询快,用于facebook新浪等搜索。

       Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索应用。

  (6)Solr比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而 Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高。

 

Hermes

在整理solr和es资料的时候意外发现了一篇文章 Hermes与开源的Solr、ElasticSearch的不同,中提到了hermes和他们两者的对比,于是摘抄了下面的部分文字,由于首次见到没有什么了解,今摘抄下了给广大读者有兴趣的朋友吧1

Solr\ES :偏重于为小规模的数据提供全文检索服务;Hermes:则更倾向于为大规模的数据仓库提供索引支持,为大规模数据仓库提供即席分析的解决方案,并降低数据仓库的成本,Hermes数据量更“大”。

Solr、ES的使用特点如下:

1. 源自搜索引擎,侧重搜索与全文检索。 
2. 数据规模从几百万到千万不等,数据量过亿的集群特别少。

Hermes:的使用特点如下:

1. 一个基于大索引技术的海量数据实时检索分析平台。侧重数据分析。 
2. 数据规模从几亿到万亿不等。最小的表也是千万级别。在腾讯17 台TS5机器,就可以处理每天450亿的数据(每条数据1kb左右),数据可以保存一个月之久。

 

 

 

开开心心编码,快快乐乐生活。
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
11月前
|
JSON 监控 搜索推荐
【技术选型】Elasticsearch 和Solr那个香?
【技术选型】Elasticsearch 和Solr那个香?
|
11月前
|
机器学习/深度学习 分布式计算 自然语言处理
【搜索引擎选型】Solr vs. Elasticsearch:怎么选?
【搜索引擎选型】Solr vs. Elasticsearch:怎么选?
|
11月前
|
JSON 分布式计算 监控
「技术选型」Elasticsearch很强大单我选Solr
「技术选型」Elasticsearch很强大单我选Solr
|
11月前
|
JSON 监控 搜索推荐
【技术选型】Elasticsearch vs. Solr-选择您的开源搜索引擎
【技术选型】Elasticsearch vs. Solr-选择您的开源搜索引擎
|
11月前
|
机器学习/深度学习 分布式计算 自然语言处理
【搜索引擎选型】Solr vs. Elasticsearch:选择开源搜索引擎
【搜索引擎选型】Solr vs. Elasticsearch:选择开源搜索引擎
|
存储 搜索推荐 Java
全文搜索引擎 Lucene Solr ElasticSearch 关系?
全文搜索引擎是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。
全文搜索引擎 Lucene Solr ElasticSearch 关系?
|
存储 自然语言处理 Java
Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具
Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具
456 0
Luke:用于Lucene / Solr / Elasticsearch索引的GUI工具
|
弹性计算 监控 搜索推荐
【最佳实践】Solr集群数据迁移至Elasticsearch
本文以阿里云Elasticsearch为例,为您演示通过第三方社区提供的solr-to-es工具,将Solr节点中的文档迁移到阿里云Elasticsearch(简称ES)中的方法。
1960 0
【最佳实践】Solr集群数据迁移至Elasticsearch
|
存储 SQL JSON
Solr vs ElasticSearch,搜索技术哪家强
前言 Solr和ElasticSearch到底有一些什么不同?我在网上搜索了一些文章,这些文章要么是列出一个表,详细地介绍两者什么功能有,什么功能没有,要么是从大类出发,比较两者的关注度,社区等等。但看完这些文章,还是没法解决我心中的疑惑,这里想跟大家分享下我的一些看法。
3174 0
|
自然语言处理 搜索推荐 Java
后端技术杂谈4:Elasticsearch与solr入门实践
阮一峰:全文搜索引擎 Elasticsearch 入门教程 阅读 1093 收藏 76 2017-08-23 原文链接:www.ruanyifeng.com 9月7日-8日 北京,与 Google Twitch 等团队技术大咖面对面www.bagevent.com 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。