【发布时间】:2012-01-17 00:41:01
【问题描述】:
我已经看到很多比较弹性搜索和 Solr 的可扩展性、速度和部署场景的问题(和很好的答案),但我似乎无法找到关于查询如何能够实现的任何差异或相对优势的良好信息处理索引数据。
具体来说,我对 elasticsearch 和 Solr 在以下方面的差异感兴趣:
分面功能:它们对分面的处理有何不同,还是基本相同?
模式处理:似乎 elasticsearch 具有灵活性优势,因为模式可以通过其余 API 动态定义,而 Solr 要求它们在 schemas.xml 中预定义(不过,我还没有看到这种差异的具体确认)。除此之外,模式的使用方式是否存在实质性差异?
索引过滤器:针对特定搜索优化数据的方式之间是否存在差异?例如我已经看到提到诸如 Solr 的字段重复和查询标记化过滤器之类的东西,它们增加了搜索算法的可定制性,但没有看到太多关于弹性搜索的同类信息,但也许它只是自动处理所有这些东西?
查询表达能力:查询 DSL 基本上是一样的表达能力,还是有根本的区别?
“提升”和/或结果定制:有哪些工具可用于硬编码或按摩算法搜索结果?
再次,请注意,我对速度/可扩展性/性能问题完全不感兴趣,只对搜索数据结构和查询语言的表现力感兴趣——可能整个问题可以概括为:是否存在我可以执行的搜索或我可以在 elasticsearch 中创建但无法在 Solr 中复制的数据结构,反之亦然?
【问题讨论】:
标签: search solr lucene elasticsearch