Solr Boost销售功能

时间:2019-05-29 09:14:36

标签: solr solr-query-syntax solr-boost

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

说产品A已售出5次,我想将其得分提高10分; productB已售出50次,我想将得分提高30。

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

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

Solr现在返回与我的“ Coffee”查询无关的文档,但只匹配boost功能。甚至有分数为“ 0”的结果。 例如

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

有什么想法摆脱那些“仅增强功能”的匹配项吗?

1 个答案:

答案 0 :(得分:1)

找到答案!

我的查询字段实际上包含了类似的增强功能

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

solr不会排除在那些0提升字段中找到的结果,而是添加它们并与-好得分0匹配。

删除0增强功能后,一切都会按预期进行。