【发布时间】:2014-11-28 08:41:15
【问题描述】:
我们只是为知识库构建 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 的框架。
但是,如果没有机会让它运行,我当然愿意接受替代解决方案。
非常感谢,
马库斯
【问题讨论】: