【问题标题】:When to use edismax over dismax?何时使用 edismax 而不是 dismax?
【发布时间】:2018-06-28 11:17:02
【问题描述】:

Solr 支持 dismax 查询解析器和 edismax 查询解析器。我们如何判断何时使用 dismax 以及何时使用 edismax?我们什么时候应该使用 edismax 而不是 dismax?

【问题讨论】:

    标签: solr edismax dismax


    【解决方案1】:

    reference guide documents this extensively

    除了支持所有的 DisMax 查询解析器参数, 扩展 Dismax:

    • 支持完整的 Lucene 查询解析器语法。

    • 支持 AND、OR、NOT、- 和 + 等查询。

    • 在 Lucene 语法模式中将“and”和“or”视为“AND”和“OR”。

    • 尊重“魔法场”名称 _val_ 和 _query_。这些不是一个 Schema 中的真实字段,但如果使用它有助于做一些特殊的事情 (如 _val_ 中的函数查询或 _query_ 的情况)。如果 _val_ 用于术语或短语查询,则 value 被解析为函数。

    • 包括在语法错误的情况下改进的智能部分转义; 字段查询、+/- 和短语查询仍受此支持 模式。

    • 通过使用单词 shingles 改进邻近度提升;你不需要 在邻近提升之前匹配文档中所有单词的查询 已应用。

    • 包括高级停用词处理:在 查询的强制性部分,但仍在附近使用 助推部分。如果查询包含所有停用词,例如“to be or not to be”,那么所有单词都是必需的。

    • 包括改进的升压功能:在扩展 DisMax 中,升压 函数是一个乘数而不是一个加数,提高你的提升 结果; DisMax (bf 和 bq) 的加性提升函数也是 支持。

    • 支持纯负嵌套查询:+foo(-foo)等查询 将匹配所有文档。

    • 允许您指定最终用户可以查询哪些字段,以及 禁止直接字段搜索。

    这些功能对您是否重要取决于您自己的用例,但在大多数情况下,没有理由使用 dismax 而不是 edismax - edismax 更灵活,并修复了多年来逐渐出现的一些 dismax 问题.除非您有非常具体的原因,否则请使用 edismax。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2014-05-29
      相关资源
      最近更新 更多