2017-07-17 126 views
0

我剛開始學習關於Solr中的提升,到目前爲止,我已經能夠基於一些特定的短語添加提升查詢,如:bq=manufacturer:sony^2。但是,我現在正在考慮將邏輯應用於提升,但我不確定如何繼續。如何知道何時使用Solr bq與bf以及如何應用查詢邏輯?

具體來說,我已經有多個方面提振查詢像

bq = manufacturer:"sony"^2 name:"bob"^3 town:"place"^4 age:"40"^5

,但我想知道是否有可能增加另一個術語,它是較小項的集合,例如,如果一個或更多的匹配,那麼對於給定的搜索結果,整個術語的權重更高?類似:

bq = manufacturer:"sony"^2name:"bob" OR town:"place" OR age:"40"^5

其中多術語在括號具有一個相關聯的權重(5),其只被「激活」,如果一個或多個它的子項匹配的。

像這樣的東西只屬於bq或更接近助推功能嗎?我有點困惑,主要的區別是什麼。

感謝您的任何幫助。

回答

1

作爲每Solr的文檔https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser

對BQ(升壓查詢)參數 對BQ參數指定一個附加的,可選的查詢,將被添加到用戶的主查詢來影響得分子句。

bf(Boost Functions)參數 bf參數指定將用於構造FunctionQueries的函數(可選提升),這些函數將作爲可選子句添加到用戶的主查詢中,以影響分數。

如果要使用本機Solr函數之一從字段派生值,那麼可以使用bf參數。

在你的情況下,你正在使用這些字段,而不是使用任何本機Solr功能。因此,對於你的情況bq將正常工作。

您可以在查詢中鏈接幾個bq參數以獲得所需的輸出。例如,您可以: -

q=*:*&bq=manufacturer:sony^2&bq=name:bob^3&bq=town:place^4&bq=age:40^5 

您可以修改上述查詢以滿足您的需求。

+0

啊,這是有道理的。此外 - 我已經有一些字段和bq值與他們相關的權重。我想知道是否有辦法添加一個與OR組合的附加術語。像'bq = term1^weight1 term2^weight2(製造商:索尼OR名稱:鮑勃OR鎮:地點OR年齡:40)^ weight3'?謝謝! – Sam

+0

我剛用這個^更新了我的問題 – Sam

相關問題