2014-09-24 6 views
0

elasticsearch를 사용하여 범주 드릴 다운을 작성하려고합니다.탄성 검색 집계

카테고리 수 표시에 문제가 있습니다.

이 쿼리 (빨간색, 캐주얼 바지)를 실행하면 범주 집계에 캐주얼 수가 표시됩니다.

색상 : 내가 다른 범주

예 필터 (예 : 신발, 청바지, 드레스와 같은) 하나의 쿼리에서 계산 검색 수 (부울 검색어로 선택)

- 빨강 색

카테고리 :

Shoes 
Pants 
    -Jeans 
    - Casual (selected as a bool query term) 
Dresses 

답변

0

잘 이해하면 모든 범주에서 집계를 계산 한 다음 필터링하여 한 번에 하나의 범주 만 표시하도록해야합니다.

post_filter (documentation 참조)을 사용하여이를 수행 할 수 있습니다. 집계가 계산 된 후 뒤에 에 적용되는 필터입니다. 대신 다음과 같이 쿼리의 귀하의 경우에는

:

{ 
    "query": { 
    "bool": { 
     "must": [ 
     {"term": {"color": "red"} } 
     ... 
     ] 
    } 
    }, 
    "aggs": { 
    ... 
    }, 
    "post_filter": { 
    {"term": {"category": "casual"}} 
    } 
} 

그리고 집계를 계산할 때 categoryterm 필터가 고려되지 않습니다 :

{ 
    "query": { 
    "bool": { 
     "must": [ 
     {"term": {"color": "red"} }, 
     {"term": {"category": "casual"}} 
     .... 
     ] 
    } 
    }, 
    "aggs": { 
    ... 
    } 
} 

이 작업을 사용합니다.