我有這種格式的資料。
[
{
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
}
]
我想根據值desc或asc順序對潛在客戶進行排序。另外,我需要折疊結果。我使用這樣的查詢進行排序。
{
"collapse": {
"field": "lead_id"
},
"sort": {
"value": { "order": "asc" }
}
}
但我想根據maximum價值進行排序。即,如果我排序,asc我希望結果是:
[
{
lead_id: "lead_2",
value: 12
},
{
lead_id: "lead_3",
value: 22
},
{
lead_id: "lead_1",
value: 67
}
]
和下降
[
{
lead_id: "lead_1",
value: 67
},
{
lead_id: "lead_3",
value: 22
},
{
lead_id: "lead_2",
value: 12
}
]
uj5u.com熱心網友回復:
collapse_sort 作為一項功能尚不可用。有一個開放的PR,所以它可能在將來可用。
解決方法是使用 inner_hits
{
"collapse": {
"field": "lead_id.keyword",
"inner_hits": {
"name": "most_recent",
"size": 1,
"sort": [ { "value": "desc" } ]
}
},
"sort": {
"value": {
"order": "asc"
}
}
}
結果
"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
]
}
]
}
}
}
}
]
父檔案仍將具有按一般排序排序的值。可以從內部匹配中選擇組排序值
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513924.html
標籤:弹性搜索弹性搜索-5
