我们在弹性搜索和搜索技术的solr之间提到了很多差异。提到的差异主要是数据格式,API可访问性,分析支持,适应性,云集成,地理空间搜索,索引等等。
此外,他们在所有地方都提到过这两种搜索技术都建立在Apache Lucene之上。我有一个基本的问题,如果两者都建立在搜索解决方案之上(Lucene在这里),那么查询的工作方式肯定存在一些差异吗?就像我只从文本搜索方面看并留下所有其他东西一样,如何在ES和solr中执行文本搜索。搜索引擎搜索/优化的方式应该有一些配置/行为改变?我需要以文本字符串为例深入了解搜索的工作原理。
如果有人可以解释我的话会很棒:)
感谢。
答案 0 :(得分:7)
我在these blog posts中对此主题进行了相当广泛的撰写。在我们的书中Relevant Search。
这是一个巨大的话题。但我会尽力让你失望。你可以用一个做什么,你可以用另一个做。但是,让我试着给你一个纲要,帮助你看到树木的森林。
我想说如果你正在解决搜索难题并喜欢深入研究搜索引擎的Java代码来解决你的问题,请选择Solr。 (当它做一些奇怪的事情时,期望调试Solr本身)
另一方面,如果调试搜索引擎会吓到你。如果你更关注分析,我会选择Elasticsearch。它会更友好。
答案 1 :(得分:1)
正如您所说,Lucene是Solr和Elasticsearch使用的基础全文搜索库。 Lucene在两者之间的使用和暴露方式存在一些细微差别,但就文本索引和查询的执行方式而言,它们几乎完全相同。
两者都使用标记化和令牌过滤器(ES:https://www.elastic.co/guide/en/elasticsearch/reference/2.0/analysis-tokenfilters.html,Solr:https://cwiki.apache.org/confluence/display/solr/Understanding+Analyzers,+Tokenizers,+and+Filters)的概念来分割和处理文本,并且都使用相同的Lucene索引格式来存储有关这些的统计信息磁盘上的令牌。
我怀疑你无法找出这个级别的差异的原因是因为实际上没有。
答案 2 :(得分:0)
Solr和elasticsearch都使用lucene运行,因此您需要安装它。
https://logz.io/blog/solr-vs-elasticsearch/ http://solr-vs-elasticsearch.com/ https://www.searchtechnologies.com/blog/solr-vs-elasticsearch-top-open-source-search
请参阅上文,了解更多内容。