elasticsearch - elastic search select only distinct with max field value -
i have documents contain version number:
{   "original_id" : "1234",   "version" : 1 }   {   "original_id" : "1234",   "version" : 2 }   {   "original_id" : "4567",   "version" : 1 }   i need select documents distinct id's , max version number.
final result should be:
[     {         "original_id": 1234,         "version" : 2     },     {         "original_id" : 4567,         "version" : 1     } ]   i confused documentation -- should using aggs? did, still of them. want top version
in sql:
select distinct(original_id) id, max(version) version docs grouping id;
here current query:
{     "from" : 0,     "size" : 25,     "sort": [{         "version": {             "order": "desc",             "mode": "max"         }     }],     "query": {         "filtered": {             "query": {                 "bool": {                     "must": [                         {                             "match": {"original_id": "95936d0b-0de4-44ad-81d3-b95d3200c27f"}                         }                     ]                 }             },             "filter": {                 "range": {                     "start" : {                     }                 }             }         }     } }      
yes should using aggregations. . .following query requirement. `
{   "aggs": {     "agg1": {       "terms": {         "field": "original_id",         "size": 0       },"aggs": {         "agg2": {           "max": {             "field": "version"           }         }       }     }   }   `
Comments
Post a Comment