solr lucene - 如何使用edismax应用boost bf。它是添加剂吗?

时间:2013-08-06 16:09:53

标签: solr lucene

我有一个如下所示的查询:

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个值。

1 个答案:

答案 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'功能可能就是你所需要的,可能是一个更复杂的整体功能。不过,我可能会误解这一切。