0
  "mm":"2",
  "q":"IBASEDESCRIPTION:(ankor sunnyvale tokyo^3 london labs)",
  "defType":"dismax",
  "fl":"score, IBASEDESCRIPTION",
  "q.op":"AND",
  "rows":"3",
  "debug.explain.structured":"true",
  "debugQuery":"on"

这是我在响应头中看到的。

mm=2 这意味着 2 个可选子句应该匹配。q.op 是 AND - 我假设子句之间的条件是 AND

我希望以下字段不匹配:

Level 3 Communications-london
akamai-level 3-london

但它们是结果的一部分。

谁能帮我理解这里的行为?

我怀疑是因为^3tokyo现场。但这就是推动因素。

4

1 回答 1

0

mm=2并不意味着两个可选子句应该匹配 - 它意味着两个子句应该匹配。设置q.op 时不生效mm

如果在查询中没有指定 'mm' 参数,或者作为 solrconfig.xml 中的默认值,则 q.op 参数的有效值(在查询中,作为 solrconfig.xml 中的默认值,或者来自中的 defaultOperator 选项Schema)用于影响行为。

如果不查看字段的分析和索引的实际值,很难说为什么包含这些特定条目(调试查询将包括有关每个字段正在命中哪些术语以及它对分数有多大贡献的信息)。

qf在使用 dismax 处理程序时,您还应该在此处使用而不是显示字段名称。

于 2020-04-12T21:27:00.570 回答