为什么 Lucene/Solr scorer 对 OR 子句的权重求和。它使查询评分与具有更多选择的术语不平衡。让查询词替代项的权重达到最大值不是更有意义吗?
这是一个例子:
我在 solr 管理界面中运行:gucci (handbag OR purse OR pocketbook)
通过单击调试,我可以看到解析后的查询符合预期:
"parsedquery":"text:gucci (text:handbag text:purse text:pocketbook)"
解释字段显示得分手正在制作(我在这里简化了一点):
weight(gucci) + sum( weight(handbag) + weight(purse) + weight(pocketbook))
结果是包含手袋、钱包和钱包的结果将比包含 gucci 和手袋的结果得分更高。我认为这是违反直觉的。对我来说,OR 意味着这些术语是等价的,而不是它们更重要。此外,我可以使用查询词提升来独立完成此操作。
我用 Edismax 进行了实验,它有类似的行为。
有没有办法让 OR 子句保留查询词“重要性”?