我有一个如下所示的查询:
qt=/solrSearchHandler&q={!func}sum(0,0)&bf=someFloatField^1
文档中someFloatField
的值为1。
我正在使用solr.SearchHandler请求处理程序w / edismax defType。
我试图弄清楚为什么文档的分数不是bf / boost和函数查询值(指定为q)的总和。
在这个例子中,我希望得分为1 (sum(0,0) + boost weight=1 * someFloatField=1)
,但实际上是0.在玩了数字之后,我看到得分实际上是按以下方式计算的:
q + bf * q
而不是
q + bf
这是我对添加剂增强的预期。也许我对如何将提升纳入分数感到困惑。如果是这样,我会很感激如何简单地添加2个值。
答案 0 :(得分:0)
根据维基,bf参数是附加的。如果您需要乘法,请改用boost参数。
http://wiki.apache.org/solr/ExtendedDisMax#bf_.28Boost_Function.2C_additive.29
bf参数代表“增强功能”,但您指示的值看起来就像是将其视为“增强字段”。如果你需要使用该字段的值来计算你的提升,你可以在函数查询中这样做,这是bf所期望的:
http://wiki.apache.org/solr/FunctionQuery
如果我正确阅读,那么'def'功能可能就是你所需要的,可能是一个更复杂的整体功能。不过,我可能会误解这一切。