Elasticsearch 聚合限制
Elasticsearch aggregation limitation
当我创建聚合查询时,它适用于什么范围:索引中的所有条目还是仅前 10000 个?
例如,这是我针对脚本指标聚合获得的响应:
{
"took": 76,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 10000,
"relation": "gte"
},
"max_score": null,
"hits": []
},
"aggregations": {
"number_of_operations_in_progress": {
"value": 2
}
}
}
hits->total->value 是 10000 这让我认为聚合函数仅应用于前 10000 个条目,而不是索引中的整个数据集。
我的理解对吗?如果是,有没有办法对所有条目应用聚合函数?
聚合始终应用于查询选择的整个文档集。
hits.total.value
仅提示有多少文档与查询匹配,在本例中超过 10K 文档与查询匹配。
您可以使用 track_total_hits
来控制应如何跟踪点击总数
POST index1/_search
{
"track_total_hits": true,
"query": {
"match_all": {}
},
"aggs": {
"groupbyk1": {
"terms": {
"field": "k1"
}
}
}
}
当我创建聚合查询时,它适用于什么范围:索引中的所有条目还是仅前 10000 个? 例如,这是我针对脚本指标聚合获得的响应:
{
"took": 76,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 10000,
"relation": "gte"
},
"max_score": null,
"hits": []
},
"aggregations": {
"number_of_operations_in_progress": {
"value": 2
}
}
}
hits->total->value 是 10000 这让我认为聚合函数仅应用于前 10000 个条目,而不是索引中的整个数据集。
我的理解对吗?如果是,有没有办法对所有条目应用聚合函数?
聚合始终应用于查询选择的整个文档集。
hits.total.value
仅提示有多少文档与查询匹配,在本例中超过 10K 文档与查询匹配。
您可以使用 track_total_hits
来控制应如何跟踪点击总数
POST index1/_search
{
"track_total_hits": true,
"query": {
"match_all": {}
},
"aggs": {
"groupbyk1": {
"terms": {
"field": "k1"
}
}
}
}