2016-12-09 2 views
0

패싯이 ES 2.0 이상에서 더 이상 지원되지 않으므로 facet_filter를 사용하는이 쿼리를 ES 2.0에서 aggs를 사용하여 변환하는 데 도움이 필요합니다. 당신 are filtering이 값을 읽을 경우집계에 탄성 검색 패싯

{ 
    "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

네, 두 개의 다른 필드를 볼 수 있습니다 :) –

답변

1

집계는 내부에 다음 format_filter 을받을 필요가 당신이

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

하지만 조금 다른 uproach처럼 떨어지게를 사용한다 거의 동일 그것은 집합체를 발견 할 것입니다. Filtering 집계가 동일합니다