1

我将 Apache Solr 8 与产品一起用作文档。每个文档都包含我想要提升的最近 X 天内的销售额,以及标题和其他字段。

假设productA已售出5次,我想用score+10来提升它;一个产品B已经卖出了50次,我想把分数提高30。

我尝试使用看起来像(edismax 查询解析器)的 boostFunction

q=Coffee&qf=title&bf=if(lt(sales,5),10,if(lt(sales,50),30))

Solr 现在返回与我的“Coffee”-Query 无关但仅与 boost 函数匹配的文档。甚至有得分为“0”的结果。例如

Rank;Score;Sales;Title
1;58.53;55;Coffee big
2;38.11;50;Coffee
3;30;55;Tea

有什么想法可以摆脱那些“唯一的增强功能”匹配吗?

4

1 回答 1

2

找到了答案!

我的查询字段实际上包括提升,例如

&qf=title^2 longDescription^0 whatever^0...

solr 没有排除在那些 0 提升字段中找到的结果,而是将它们添加并匹配 - 好分数 0。

当我删除 0-boostings 时,一切都按预期工作。

于 2019-05-29T10:57:17.480 回答