"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
但它们是结果的一部分。
有谁能帮我理解这里的行为吗?
我怀疑这是因为tokyo
域中的^3
。但这就是提升因子。
1条答案
按热度按时间polhcujo1#
mm=2
并不表示两个可选子句应该匹配,而是表示两个子句应该匹配。q.op
does not take effect whenmm
is set。如果在查询中未指定'mm'参数,或在solrconfig.xml中指定为默认值,则使用q.op参数的有效值(在查询中、在solrconfig.xml中指定为默认值,或来自Schema中的defaultOperator选项)来影响行为。
如果不查看对字段的分析和索引的实际值(调试查询将包括有关每个字段命中了哪些术语以及它对得分的贡献有多大的信息),就很难说为什么要包括这些特定条目。
在使用dismax处理程序时,您还应该在此处使用
qf
,而不是使用字段名。