首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Lucene boolean OR查询评分是否偏向于有更多选择的术语

Lucene boolean OR查询评分是否偏向于有更多选择的术语
EN

Stack Overflow用户
提问于 2013-03-19 23:51:37
回答 1查看 416关注 0票数 0

为什么Lucene/Solr scorer对OR子句的权重进行求和。这是不平衡的查询评分对有更多的选择的术语。让查询词替代项的权重达到最大值不是更有意义吗?

下面是一个示例:

我在solr管理界面中运行: gucci (手提包、钱包或皮夹)

通过单击debug,我可以看到解析后的查询与预期一致:

代码语言:javascript
代码运行次数:0
运行
复制
"parsedquery":"text:gucci (text:handbag text:purse text:pocketbook)"

explain字段显示记分器正在进行(我在这里稍微简化一下):

代码语言:javascript
代码运行次数:0
运行
复制
weight(gucci) + sum( weight(handbag) + weight(purse) + weight(pocketbook))

结果是,包含手袋、钱包和钱包的结果将比包含gucci和手袋的结果具有更高的分数。我认为这是违反直觉的。对我来说,OR意味着这些术语是等价的,而不是它们更重要。此外,我可以使用查询词提升来独立完成这项工作。

我用Edismax做了实验,它有类似的行为。

有没有一种方法可以让OR子句保留查询术语“重要性”?

EN

回答 1

Stack Overflow用户

发布于 2013-03-19 23:59:36

您可以尝试使用DisjunctionMaxQuery,并为析取设置不同的提升因子。看一下tieBreakMultiplier构造函数参数-它可以帮助实现您想要的结果。引用文档:

tieBreakerMultiplier <..> value <..>表示,得分较低的字段中出现的10个单词与得分较低的字段

中的唯一单词一样好

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15504198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档