Sorting Elasticsearch中聚合后的排序
我有这样结构的文档:Sorting Elasticsearch中聚合后的排序,sorting,elasticsearch,aggregation,Sorting,elasticsearch,Aggregation,我有这样结构的文档: { FIELD1:string, FIELD2: [ {SUBFIELD:number}, {SUBFIELD:number}...] } 我想根据字段2中数字总和的结果进行排序。子字段: GET myindex/_search { "size":0, "aggs": { "a1": { "terms": { "field": "FIELD1", "size":0 }
{
FIELD1:string,
FIELD2:
[ {SUBFIELD:number}, {SUBFIELD:number}...]
}
我想根据字段2中数字总和的结果进行排序。子字段:
GET myindex/_search
{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
如果我这样做,我将获得未排序的桶,但我希望桶按“a2”值排序。
我怎么能做到?
谢谢大家! 你差点就成功了。您只需向
a1
术语聚合中添加一个,如下所示:
GET myindex/_search
{
"size":0,
"aggs": {
"a1": {
"terms": {
"field": "FIELD1",
"size":0,
"order": {"a2": "desc"} <--- add this
},
"aggs":{
"a2":{
"sum":{
"field":"FIELD2.SUBFIELD"
}
}
}
}
}
}
GET myindex/\u搜索
{
“大小”:0,
“aggs”:{
“a1”:{
“条款”:{
“字段”:“字段1”,
“大小”:0,
“顺序”:{“a2”:“desc”}Val的辉煌
基本上是一样的,但我找到了每个“名字”的最大“尺寸”,并展示了前25个最大的:
{
"size": 0,
"aggs": {
"agg1": {
"terms": {
"field": "name.keyword",
"order": {
"agg2": "desc"
},
"size": 25
},
"aggs": {
"agg2": {
"max": {
"field": "size"
}
}
}
}
}
}
谢谢…我不知道“订单”在哪里谢谢!救了我一天!在文档上找不到这个,这很明显:)@ErdalG。文档或订购术语聚合是@Val这在a2
是scripted_metric
聚合时不起作用。我在我必须使用scripted_metric
聚合的情况下使用了它。我得到了这个错误“原因”:{“类型”:“聚合\执行\异常”,“原因”:“无效术语聚合顺序路径[totalViews].Terms bucket只能在子聚合器路径上排序,子聚合器路径由路径中的零个或多个单个bucket聚合和路径末端的最终单个bucket或度量聚合组成。“}
@saeedzhi如果正确,则有一个和一个。