[英]SOLR - boost a field score with boost function on another field
假設我有4個字段: field1
, field2
, field3
和boost1
以及一個boost函數f
。 我想獲得一個分數field1_score+field2_score*f(boost1)+field3_score*f(boost1)
看起來像q=field1:value1 OR (field2:value2 OR field3:value3)^f(boost1)
,但是Solr抱怨其無效並返回Lexical error
。
當前的solr查詢如下所示: defType=edismax&q=field1:value1 OR field2:value2 OR field3:value3&boost=f(boost1)
。 但是通過這種方式,來自boost
部分的值也會對field1:value1
的分數產生影響field1:value1
使其等於field1_score*f(boost1)+field2_score*f(boost1)+field3_score*f(boost1)
。
我已經四處尋找解決方案,但是找不到。 任何幫助表示贊賞!
您可以使用query
功能和其他Solr函數來創建所需的任何自定義評分。
例如,您可以執行以下操作:
q=*:*
bf=sum(query($q1),mul(query($q2),${boost1}),mul(query($q3),${boost1}))
q1=field1:value1
q2=field2:value2
q3=field3:value3
boost1=5
boost1
設置為您想要的任何值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.