[英]Collapse results based on the maximum or mininum value
I have data in this format.我有这种格式的数据。
[
{
lead_id: "lead_1",
value: 34
},
{
lead_id: "lead_1",
value: 22
},
{
lead_id: "lead_1",
value: 67
},
{
lead_id: "lead_2",
value: 12
},
{
lead_id: "lead_2",
value: 9
},
{
lead_id: "lead_3",
value: 22
},
{
lead_id: "lead_3",
value: 5
}
]
And I want to sort the leads based on the value in desc
or asc
order.我想根据
desc
或asc
顺序的值对线索进行排序。 Also, I need to collapse the result.另外,我需要折叠结果。 I used a query like this for the sort.
我使用这样的查询进行排序。
{
"collapse": {
"field": "lead_id"
},
"sort": {
"value": { "order": "asc" }
}
}
But I want to sort base on the maximum
value.但我想根据
maximum
进行排序。 ie if I sort in asc
I want the results to be:即,如果我按
asc
排序,我希望结果为:
[
{
lead_id: "lead_2",
value: 12
},
{
lead_id: "lead_3",
value: 22
},
{
lead_id: "lead_1",
value: 67
}
]
and for descending和下降
[
{
lead_id: "lead_1",
value: 67
},
{
lead_id: "lead_3",
value: 22
},
{
lead_id: "lead_2",
value: 12
}
]
collapse_sort as a feature is not available yet. collapse_sort 作为一项功能尚不可用。 There is an open PR so it might be available in future.
有一个开放的PR ,所以它可能在将来可用。
Work around is to use inner_hits解决方法是使用 inner_hits
{
"collapse": {
"field": "lead_id.keyword",
"inner_hits": {
"name": "most_recent",
"size": 1,
"sort": [ { "value": "desc" } ]
}
},
"sort": {
"value": {
"order": "asc"
}
}
}
Result结果
"hits" : [
{
"_index" : "index11",
"_type" : "_doc",
"_id" : "xAugp4MBfEI_j4sNVw3V",
"_score" : null,
"_source" : {
"lead_id" : "lead_3",
"value" : 5
},
"fields" : {
"lead_id.keyword" : [
"lead_3"
]
},
"sort" : [
5
],
"inner_hits" : { --> group sorted values
"most_recent" : {
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : null,
"hits" : [
{
"_index" : "index11",
"_type" : "_doc",
"_id" : "wwugp4MBfEI_j4sNTw1c",
"_score" : null,
"_source" : {
"lead_id" : "lead_3",
"value" : 22
},
"sort" : [
22
]
}
]
}
}
}
},
{
"_index" : "index11",
"_type" : "_doc",
"_id" : "wgugp4MBfEI_j4sNSA00",
"_score" : null,
"_source" : {
"lead_id" : "lead_2",
"value" : 9
},
"fields" : {
"lead_id.keyword" : [
"lead_2"
]
},
"sort" : [
9
],
"inner_hits" : {
"most_recent" : {
"hits" : {
"total" : {
"value" : 2,
"relation" : "eq"
},
"max_score" : null,
"hits" : [
{
"_index" : "index11",
"_type" : "_doc",
"_id" : "wQugp4MBfEI_j4sNQg3t",
"_score" : null,
"_source" : {
"lead_id" : "lead_2",
"value" : 12
},
"sort" : [
12
]
}
]
}
}
}
},
{
"_index" : "index11",
"_type" : "_doc",
"_id" : "vwugp4MBfEI_j4sNNw0q",
"_score" : null,
"_source" : {
"lead_id" : "lead_1",
"value" : 22
},
"fields" : {
"lead_id.keyword" : [
"lead_1"
]
},
"sort" : [
22
],
"inner_hits" : {
"most_recent" : {
"hits" : {
"total" : {
"value" : 3,
"relation" : "eq"
},
"max_score" : null,
"hits" : [
{
"_index" : "index11",
"_type" : "_doc",
"_id" : "wAugp4MBfEI_j4sNPQ3F",
"_score" : null,
"_source" : {
"lead_id" : "lead_1",
"value" : 67
},
"sort" : [
67
]
}
]
}
}
}
}
]
Parent document will still have values sorted as per general sort.父文档仍将按照一般排序对值进行排序。 Group sort values can be picked from inner hits
可以从内部命中中选取组排序值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.