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