我有一些具有相同数据类型的索引(相同的字段)。有没有办法在每个索引中获得某个字段的最大值(例如)?
假设我有以下数据:
index1.some_type:
{"some_field": 23},
{"some_field": 14},
{"some_field": 43}
index2.some_type:
{"some_field": 11},
{"some_field": 65},
{"some_field": 3}
我希望第一个索引的最大值为43,第二个索引的最大值为65。弹性搜索允许在一个聚合查询中执行此类操作吗?
答案 0 :(得分:4)
是的,您肯定可以使用_index
meta field中的特殊terms
aggregation,然后使用some_field
上的max
aggregation,如下所示:
curl -XPOST localhost:9200/_search -d '{
"size": 0,
"aggs": {
"byindex": {
"terms": {
"field": "_index"
},
"aggs": {
"max_value": {
"max": {
"field": "some_field"
}
}
}
}
}
}'