2013-08-06 24 views
0

我有一個查詢,看起來像這樣:solr lucene - 如何使用edismax增強bf。它是添加劑嗎?

qt=/solrSearchHandler&q={!func}sum(0,0)&bf=someFloatField^1 

如果文檔具有的價值1

我使用solr.SearchHandler請求處理程序W/edismax DEFTYPE someFloatField

我想弄清楚爲什麼文檔的分數不是bf/boost和函數查詢值(指定爲q)的總和。

在這個例子中,我希望比分爲1 (sum(0,0) + boost weight=1 * someFloatField=1)但它實際上是0打後W /我看到分數實際上是被計算爲數字:的

q + bf * q 

代替

q + bf 

這是我預期的添加劑助推。也許我對如何將提升融入得分感到困惑。如果是這樣,我將不勝感激任何方向,如何簡單地添加2個值。

回答

0

根據wiki,bf參數是可加的。如果您需要乘法,請改用boost參數。

http://wiki.apache.org/solr/ExtendedDisMax#bf_.28Boost_Function.2C_additive.29

高爐參數代表「提升功能」,但你已經表明看起來你是把它當作「助推場」,而不是價值。如果您需要使用該字段的值來計算你的提升,你可以在一個功能查詢這樣做,這是對BF期待:

http://wiki.apache.org/solr/FunctionQuery

如果我讀吧,「 def'函數可能是你需要的,可能是一個更復雜的整體函數。不過,我可能會誤解這一切。

+0

我期望bf是可加性的,但在我的情況下,它不僅僅添加bf值,而是添加(bf * q),其中q是函數查詢分數。 –