我将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
有什么想法摆脱那些“仅增强功能”的匹配项吗?
答案 0 :(得分:1)
找到答案!
我的查询字段实际上包含了类似的增强功能
&qf=title^2 longDescription^0 whatever^0...
solr不会排除在那些0提升字段中找到的结果,而是添加它们并与-好得分0匹配。
删除0增强功能后,一切都会按预期进行。