我对 Solr 和 Elasticsearch 的近实时搜索能力感到困惑。近乎实时的搜索被认为是 Elasticsearch 相对于 Solr 的优势之一。但是,我已经阅读了 Solr 的一些文档,说通过使用软提交也可以在 Solr 上进行近实时搜索,但需要花费打开新搜索器的成本。通过这样做,新文档在 1 秒内可见。在 Elasticsearch 中,刷新还可以在一秒钟内使一个新文档可供搜索。我错过或误解了什么吗?哪一个在实时搜索方面做得更好?任何答案将不胜感激。谢谢你。
问问题
2905 次
1 回答
1
归根结底,他们都在引擎盖下使用了 lucene。lucene 中的近实时搜索意味着重新打开索引阅读器,在 elasticsearch 中称为 refresh 并通过refresh api公开。
另一方面,您也需要提交 lucene 索引以获得持久性,这很昂贵并且不能每秒完成,这就是为什么 elasticsearch 有一个事务日志以及使 elasticsearch “kill -9 安全”的原因,并且还允许实时获取。
但对我来说最好的部分是,在弹性搜索中,用户不必担心刷新和提交太多,因为默认情况下一切都会在后台自动发生。同时,还有 api(刷新和刷新)以及允许更改高级用户默认行为的设置。
于 2014-02-17T19:02:01.757 回答