2011-08-08 66 views
2

是否可以增強Solr中過濾器查詢(fq =)中出現的字段?Solr過濾器查詢和提升

我有了一個標記篩選查詢像這樣一個方位查詢:

...&q=*:*&fq={!tag:X}brand:(+"4911")+OR+body:(abc)&facet.field={!ex:X}brand&.. 

(我刻面品牌和小面被設置爲忽略過濾查詢標記X,所以我需要使用過濾器查詢。)

我想在品牌字段得分上匹配比在過濾器查詢中正文字段上的匹配更高的匹配。

該領域的品牌和身體是多值的。

我已經嘗試添加bf =/bq =參數,並且如果將過濾器查詢更改爲主'q ='查詢,我可以獲得品牌匹配得分更高,但我似乎無法獲得以影響過濾器查詢中任何內容的分數。我想我可能會以錯誤的方式去做。

謝謝。

+0

這裏:[鏈接](http://search.lucidimagination.com/search/document/77a17b1bad16acd8/boost_the_results_for_filter_value_in_a_single_query)是我想要按照Yonik Seeley的建議去做,但它對我不起作用。 –

+0

我找不到任何讓fq分數影響結果順序的方法。我設法使用排序查詢來獲得我想要的結果。我添加了'&qq = brand:(4911)&sort = sum(query($ qq),ord(score))+ desc',但我認爲它可能會影響性能。 –

回答

6

Solr「fq」不影響分數 - 請參閱the wiki。所以,你應該把你的查詢添加到你想提升的「q」中。如果需要,您可以始終在「q」和「fq」中複製查詢限制,因爲「fq」僅用作對結果集的限制。

+0

感謝您的回答。事實上,過濾器查詢不會影響分數,我在開始時並不知道。我想知道是否可以使用dismax解析器的'bq'boost查詢參數。我的最終解決方案是使用兩個請求。一個用於刻面,另一個用於有序的結果。 –