Pat*_*ela 4 sorting cardinality aggregation elasticsearch
当我提出这样的请求时
curl -XGET "http://localhost:9200/log/travels/_search?pretty" -d '
{
"aggs":{
"travelers":{
"terms":{
"field":"traveler",
"shard_size":0,
"size":5,
"order":{
"cities":"desc"
}
},
"aggs":{
"cities":{
"nested":{
"path":"cities"
},
"aggs":{
"city_count":{
"cardinality":{
"field":"cities.name"
}
}
}
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
我收到了一个错误的回复,就像这样
"aggregations" : {
"travelers" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 410,
"buckets" : [ {
"key" : "patrick",
"doc_count" : 9,
"cities" : {
"doc_count" : 10,
"city_count" : {
"value" : 3
}
}
}, {
"key" : "jonathan",
"doc_count" : 8,
"cities" : {
"doc_count" : 10,
"city_count" : {
"value" : 4
}
}
}, {
"key" : "yosef",
"doc_count" : 8,
"cities" : {
"doc_count" : 10,
"city_count" : {
"value" : 4
}
}
}, {
"key" : "mark",
"doc_count" : 8,
"cities" : {
"doc_count" : 9,
"city_count" : {
"value" : 2
}
}
}, {
"key" : "mike",
"doc_count" : 7,
"cities" : {
"doc_count" : 9,
"city_count" : {
"value" : 5
}
}
} ]
}
}
Run Code Online (Sandbox Code Playgroud)
我希望按照前往的城市数量来订购.如果我将基数更改为value_count,它会正确排序,但我不能这样,因为它会计算重复数.
如果有更多细节可以帮助您,请随时提出要求.
如果您尝试按2级深度子聚合进行排序,则order根据文档(请查看段落末尾)的语法略有不同.
在ElasticSearch权威指南的这一部分中也更清楚地解释了它.
在你的情况下,像这样的东西应该做的伎俩:
"order":{ "cities>city_count.value":"desc" }
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
959 次 |
| 最近记录: |