2013-09-27 52 views
3

通過分配給該記錄的點提高記錄我的問題是,我們如何爲每個搜索記錄提供動態提升值?Elastic Search

在我的情況下,數據庫中的每個記錄都有一個點值分配給它,我必須在搜索時將該點賦值爲增強值。

感謝和問候

+0

請點擊「編輯」 ...請不要使用評論框在這裏更新你的問題。 – jamesc

+0

如果你用'tyre'和or rails來標記問題,你可能會得到一些更好的答案,因爲它看起來就是你正在使用的。 – jamesc

回答

3

我解決了這個使用以下:

custom_score :script => "_score+doc['increase_relevance_points'].value" do 
    boolean do 
    should { match :increase_relevance_text, term} 
    end 
end 
0

您可以從索引數據庫記錄到ElasticSearch作爲一個整數點值。一旦它在那裏,你有很多選擇使用custom_scorescript based sorting

如果你想通過point_value的因素,以提高每一個結果,然後查詢可能看起來像:

"query": { 
    "custom_score" : { 
     "query" : { 
      .... 
     }, 
     "script" : "doc['point_value'].value * _score" 
    } 
} 

退房的custom score query docs全信息。

+0

我想這一點,但,這並不適合我的要求 映射做 指標:attR1位 指標:attR2位 指標:increase_relevance_text 指標:decrease_relevance_text 結束 我必須增加記錄的提升,如果搜索詞匹配的文本在increase_relevance_text中,反之亦然。 –

+0

我迫切需要一些解決方案。請幫助我。 –

+0

我嘗試這個解決方案 custom_score做 查詢做 應該{匹配:increase_relevance_text,長期} 結束 腳本 '_score + doc.increase_relevance_points' 結束 得到錯誤 未定義的方法'#爲<輪胎::搜索查詢」 ::布爾查詢:0xb3c845d4> 請jamesc幫我。 –

相關問題