簡體   English   中英

SOLR-通過增強功能在另一個場上增強場得分

[英]SOLR - boost a field score with boost function on another field

假設我有4個字段: field1field2field3boost1以及一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM