2013-08-29 36 views
5

排序我有以下查詢:推進特定領域的搜索和排名

{ 
    "sort": [ 
     {"actual_rank" : "desc"} 
    ], 
    "query": { 
     "multi_match" : { 
      "query" : term, 
      "fields" : [ "title^3" , "category^5" , "entities.name^5"] 
     } 
    } 
} 

與此查詢的問題是,等級排序可以使指定的域提升漂亮無關(最佳排名的項目中,沒有出現在指定字段中的術語將比術語出現的最差排名項目更高)。

我想降低排序的重要性,以獲得更好的結果。

回答

6

實際上,根據排序文檔(http://www.elasticsearch.org/guide/reference/api/search/sort/),如果您希望在對字段進行排序時計算分數,則需要啓用track_scores設置。

但是,我猜你想要做一些自定義評分(請參閱http://www.elasticsearch.org/guide/reference/query-dsl/custom-score-query/和/或http://www.elasticsearch.org/guide/reference/query-dsl/custom-filters-score-query/)。這些博客文章的例子很好(http://jontai.me/blog/2013/01/advanced-scoring-in-elasticsearch/

我會發布代碼,但我認爲博客文章提供了一個完整的視圖。