Solr支持dismax查询解析器和edismax查询解析器。我们如何得出结论,何时使用dismax和何时edismax?什么时候应该使用edismax而不是dismax?
答案 0 :(得分:2)
reference guide documents this extensively。
除了支持所有DisMax查询解析器参数外, 扩展Dismax:
支持完整的Lucene查询解析器语法。
支持诸如AND,OR,NOT,-和+之类的查询。
在Lucene语法模式下将“ and”和“ or”分别处理为“ AND”和“ OR”。
尊重“魔术场”名称_val_和_query_。这些不是 架构中的实际字段,但是如果使用它,它可以帮助做一些特殊的事情 (例如_val_的函数查询或 _query_)。如果在字词或词组查询中使用_val_,则 值被解析为一个函数。
包括在语法错误的情况下改进的智能部分转义功能; 此字段仍支持字段查询,+ /-和短语查询 模式。
通过使用单词带状图来提高接近度;你不需要 查询以匹配提升邻近度之前文档中的所有单词 已应用。
包括高级停用词处理: 查询的必需部分,但仍在附近使用 增强部分。如果查询包含所有停用词,例如“ to be or 不是”,那么所有单词都是必需的。
包括改进的增强功能:在扩展DisMax中,增强 函数是一个乘数而不是加数,从而提高了效率 结果; DisMax(bf和bq)的加性Boost函数也为 支持。
支持纯否定嵌套查询:+ foo(-foo)之类的查询 将匹配所有文档。
让您指定最终用户可以查询哪些字段以及 禁止直接搜索。
这些功能对您是否重要取决于您自己的用例,但是在大多数情况下,没有理由在edismax上使用dismax-edismax更具灵活性,并解决了多年来困扰了Dismax的一些问题。除非有特殊原因,否则请使用edismax。