2016-07-13 5 views
0

단일 쿼리을 만들고 싶습니다. 그러면 매핑에서 특정 사용자가 사용중인 필드를 알 수 있습니다. 이것은 집계로 할 수 있어야하는 것처럼 보이지만 방법에 대해서는 공백을 표시합니다.탄성 검색에 사용되는 필드 집계

그래서 내 매핑이 user, field1, field2field3 인 경우. 주어진 사용자가있는 문서에 실제로 이러한 항목이 표시되는지 알고 싶습니다. 나는 field1 같은 것을 12 개의 문서에서 사용하고, field2 개의 문서에서는을 사용자 x에 대해 5 개의 문서에서 사용할 것으로 예상했다.

+0

, 각 필드에 대한 필드'user', 그 이상'filters' 통합을위한'terms' 집계를. 당신에게'user/{field1 : count, field2 : count, field3 : count} '를 주어야합니다. –

답변

1

내가 아니라 요구 사항을 이해하면,이 그것을 수행해야합니다 그래서 기본적으로

{ 
    "size": 0, 
    "query": { 
    "term": { 
     "user": { 
     "value": "x" 
     } 
    } 
    }, 
    "aggs": { 
    "field1_count": { 
     "filter": { 
     "exists": { 
      "field": "field1" 
     } 
     } 
    }, 
    "field2_count": { 
     "filter": { 
     "exists": { 
      "field": "field2" 
     } 
     } 
    }, 
    "field3_count": { 
     "filter": { 
     "exists": { 
      "field": "field3" 
     } 
     } 
    } 
    } 
} 
+0

고맙습니다. – aepheus