2013-08-29 28 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/

私はブログの投稿は、完全なビューを提供すると思います。

関連する問題