ES(Elasticsearch)和solr的差别

ES(Elasticsearch)和solr的差别

Elasticsearch简介         Elasticsearch 是一个 实时分布式搜索和分析引擎 。它让你以 前所未有的速度处理大数据 成为可能。           它用于 全文搜索、 结构化搜索、 分析以及 将这三者混合使用:           维基百科使用Elasticsearch 提供全文搜索并高亮关键字,以及输入实时搜索 (search-asyou-type) 和搜索 纠错(did-you-mean) 等搜索建议功能。           英国卫报使用Elasticsearch 结合用户日志和社交网络数据提供给他们的编辑以实时的反馈,以便及时了 解公众对新发表的文章的回应。           StackOverflflow结合全文搜索与地理位置查询,以及 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比较

www.zeeklog.com  - ES(Elasticsearch)和solr的差别
www.zeeklog.com  - ES(Elasticsearch)和solr的差别
www.zeeklog.com  - ES(Elasticsearch)和solr的差别
www.zeeklog.com  - ES(Elasticsearch)和solr的差别

ElasticSearch vs Solr 总结  1 、 es 基本是开箱即用,非常简单。 Solr 安装略微复杂一丢丢!    2 、 Solr  利用  Zookeeper  进行分布式管理,而  Elasticsearch  自身带有分布式协调管理功能。    3、Solr  支持更多格式的数据,比如 JSON 、 XML 、 CSV ,而  Elasticsearch  仅支持 json 文件格式。    4 、 Solr  官方提供的功能更多,而  Elasticsearch  本身更注重于核心功能,高级功能多有第三方插件提    供,例如图形化界面需要 kibana 友好支撑    5 、 Solr  查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用;    ES 建立索引快(即查询慢),即实时性查询快,用于 facebook 新浪等搜索。    6、Solr  是传统搜索应用的有力解决方案,但  Elasticsearch  更适用于新兴的实时搜索应用。    7、 Solr 比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,而  Elasticsearch 相对开发维护者    较少,更新太快,学习使用成本较高。