elasticsearch和solr之间的根本区别是什么?

thi*_*ain 0 apache search solr search-engine elasticsearch

我们在弹性搜索和搜索技术的solr之间提到了很多差异.提到的差异主要是数据格式,API可访问性,分析支持,适应性,云集成,地理空间搜索,索引等.

此外,在所有地方,他们都提到这两种搜索技术都建立在Apache Lucene之上.我有一个基本的问题,如果两者都建立在搜索解决方案之上(Lucene在这里),那么查询的工作方式肯定存在一些差异吗?就像我只从文本搜索方面看并留下所有其他东西一样,如何在ES和solr中执行文本搜索.搜索引擎搜索/优化的方式应该有一些配置/行为改变?我需要以文本字符串为例深入了解搜索的工作原理.

如果有人能解释我那会很棒:)

谢谢.

Dou*_* T. 8

我在这些 博文中对这个主题进行了相当广泛的撰写.在我们的书中,相关搜索.

这是一个巨大的话题.但我会尽力让你失望.你可以用一个做什么,你可以用另一个做.但是,让我试着给你一个纲要,帮助你看到森林的树木.

索尔是

  • Apache Foundation项目.这意味着它有更多的社区驱动的"集市"感觉
  • 由大数据领域的许多供应商推动(LucidWorks,Cloudera,Datastax ......)
  • 更容易编写插件
  • 重点关注传统搜索问题和功能,而不是分析
  • 倾向于吸引人们解决非常先进的问题
  • 一个重要的"虫子" - 海饼问题
  • 有一个更难使用的查询API,但更强大
  • 相对"先进"的感受用户体验

另一方面,Elasticsearch

  • 更像是一个"仁慈的独裁者"项目,有非常简洁的API,文档等
  • 公司由Elastic公司推动
  • 您可以编写有限类型的插件
  • 重点关注搜索(聚合等)的分析方面,而不仅仅是纯搜索
  • 允许您更精确地控制分析
  • 更容易使用查询API,但功能不强(参见上面的博客文章,以及此SO问题)
  • 相对用户友好的体验

我想说如果你正在解决硬搜索问题并喜欢深入研究搜索引擎的Java代码来解决你的问题,请选择Solr.(当它做一些奇怪的事情时,期望调试Solr本身)

另一方面,如果调试搜索引擎会吓到你.如果你更关注分析,我会选择Elasticsearch.它会更友好.