我们只是为知识库建立一个 Solr 索引,我在实现提升时遇到了一些问题。首先:我们希望有乘法提升而不是加法。
并且:文档的点击次数越多,它应该被提升的越多,但只是在一定程度上。首先,我们想到了 boost=sum(div(hits,10000),1) 之类的函数,但这会过多地推动某些文档。
所以我们想到了这样的事情(除了其他一些,但这些都有效,只有这些给我一个错误):
&boost=if(hits,[0+TO+100],1)
&boost=if(hits,[101+TO+250],1.25)
&boost=if(hits,[250+TO+100000],1.5)
错误是:
org.apache.solr.search.SyntaxError: Expected identifier at pos 8 str='if(hits,[101 TO 250],1.25)'
因此,显而易见的原因是 if 函数中的范围,如果我用单个值删除它,一切正常,但这并没有真正帮助我。
所以我的问题是:是否不可能将“if()”函数与一系列值相匹配?我知道我可以尝试一百万种不同的方法来解决这个问题,但实际上我们会很高兴以这样的方式拥有它,因为 boost 参数值可以针对不同的范围进行配置,并且很容易让该语法与我们的访问 Solr 的框架。
但是,如果没有机会让它运行,我当然愿意接受替代解决方案。
非常感谢,
马库斯