2017-05-10 2 views
0

column1을 기준으로 레코드를 그룹화하려고합니다. 각 그룹에 대해 column2의 최대 값을 갖는 단일 레코드가 필요합니다. column1, max (column2)와 함께 column2의 값이 max (column2)와 일치하는 각 그룹에서 column3을 원합니다.탄성 검색에서 통합으로 다른 열을 얻는 방법

어떻게해야합니까?

처음 두 점을 얻을 수는 있지만 다른 열을 가져 오는 방법을 찾을 수 없습니다.

{ 
    "size": 0, 
    "aggs": { 
    "group": { 
     "terms": { 
     "field": "column1" 
     }, 
     "aggs": { 
     "column2": { 
      "max": { 
      "field": "column2" 
      } 
     } 
     } 
    } 
    } 
} 

은 내가이 결과 JSON에 3 열의 값을 원하는

{ 

    "took": 25, 
    "timed_out": false, 
    "_shards": { 
     "total": 5, 
     "successful": 5, 
     "failed": 0 
    }, 
    "hits": { 
     "total": 3995, 
     "max_score": 0, 
     "hits": [ ] 
    }, 
    "aggregations": { 
     "group": { 
      "doc_count_error_upper_bound": 12, 
      "sum_other_doc_count": 3776, 
      "buckets": [ 
       { 
        "key": 10, 
        "doc_count": 27, 
        "column2": { 
         "value": 20110930013248 
        } 
       } 
       , 
       { 
        "key": 711, 
        "doc_count": 23, 
        "column2": { 
         "value": 20111013174812 
        } 
       } 
       , 
       { 
        "key": 888, 
        "doc_count": 22, 
        "column2": { 
         "value": 20110531204116 
        } 
       } 
       , 
       { 
        "key": 907, 
        "doc_count": 22, 
        "column2": { 
         "value": 20111013175931 
        } 
       } 
       , 
       { 
        "key": 1098, 
        "doc_count": 22, 
        "column2": { 
         "value": 20110421183543 
        } 
       } 
       , 
       { 
        "key": 702, 
        "doc_count": 21, 
        "column2": { 
         "value": 20111011183045 
        } 
       } 
       , 
       { 
        "key": 878, 
        "doc_count": 21, 
        "column2": { 
         "value": 20110713195140 
        } 
       } 
       , 
       { 
        "key": 973, 
        "doc_count": 21, 
        "column2": { 
         "value": 20111007203050 
        } 
       } 
       , 
       { 
        "key": 29, 
        "doc_count": 20, 
        "column2": { 
         "value": 20110927163219 
        } 
       } 
       , 
       { 
        "key": 675, 
        "doc_count": 20, 
        "column2": { 
         "value": 201110070
        } 
       } 
      ] 
     } 
    } 

} 

같은 출력을 제공합니다.

+0

샘플 출력을 제공 할 수 있습니까? – Richa

+0

@ Richa, 내 질문에 편집 됨 –

답변

0

나는 귀하의 경우 쿼리 작업을 다음과 같은 생각이 도움이

{ 
"size": 0, 
"aggs": { 
"group": { 
    "terms": { 
    "field": "column1" 
    }, 
    "aggs": { 
    "column2": { 
     "top_hits": { 
     "fields": ["column2" , "column3"], 
     "sort" : { 
      "column2" : "desc"     ===> Sorting with column2 in decsreasing order to get max on top 
     }, 
     "size" : 1     ===> Restricting to size 1, so that only highest is returned 
     } 
     } 
     } 
    } 
    } 
} 

희망을!

관련 문제