2016-12-09 9 views
0

ファセットがES 2.0以降でサポートされなくなったため、facet_filterを使用してこのクエリをES 2.0でaggsに変換する際に役立つ必要があります。弾性検索ファセットから集約

{ 
    "facets": { 
    "format": { 
     "terms": { 
     "field": "documentary_tag_id", 
     "size": 10, 
     "exclude": ["2"] 
     }, 
     "facet_filter": { 
     "term": { 
      "documentary_tag_id": ["2"] 
     } 
     } 
    } 
    }, 
    "sort": [ 
    "_score", 
    { 
     "documentary_tag_name": { 
     "order": "desc" 
     } 
    } 
    ] 
} 
+0

私は、2でフィルタリングするファセットフィルタと2を除外した理由から混乱していますか? –

+0

tag_id 2のすべてのドキュメンタリを検索し、結果から2を除外することになっています。 – user1817347

+0

はい私はその2つの異なるフィールドを参照してください:) –

答えて

1

集計ほぼ同じで、あなたはの内、その後 format_filter を取得する必要があります値を読み取るために、この

GET _search 
{ 
    "aggs": { 
    "format_filter": { 
     "filter": { 
     "terms": { 
      "documentary_tag_id": [ 
      "2" 
      ] 
     } 
     }, 
     "aggs": { 
     "format": { 
      "terms": { 
      "field": "documentary_tag_id", 
      "exclude" : "2" 
      } 
     } 
     } 
    } 
    } 
} 

しかし、その少し異なるuproachあなたare filteringかのようになめらかを使用する必要がありますそれは集約を見つけるでしょう。 Filteringアグリゲーションの内側は同じ