【发布时间】:2019-04-05 21:25:51
【问题描述】:
全局聚合没有考虑到我的 elasticsearch 中的所有文档。
我已尝试按照文档中的说明将全局聚合放在顶层。
全局聚合定义了搜索执行上下文中所有文档的单个存储桶。此上下文由您正在搜索的索引和文档类型定义。
全局聚合器只能作为顶级聚合器放置。
{
"size": 0,
"aggs":{
"all_documents":{
"global":{},
"aggs":{
"all_totals":{
"terms":{
"field":"dateReleve"
},
"aggs":{
"total_clients_cut":{
"sum":{
"field":"nbClientCoupe"
}
}
}
}
}
}
}
}
sum_other_doc_count 的值预计为零,但我得到 299932
{
"took": 9,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 302644,
"max_score": 0,
"hits": []
},
"aggregations": {
"all_documents": {
"doc_count": 302644,
"all_totals": {
"doc_count_error_upper_bound": 608,
"sum_other_doc_count": 299932,
"buckets": [
{
"key": 1554144600000,
"key_as_string": "2019-04-01T18:50:00.000Z",
"doc_count": 374,
"total_clients_cut": {
"value": 178673
}
},
...
但是当我通过这样做来增加术语桶的大小时:
{
"size": 0,
"aggs":{
"all_documents":{
"global":{},
"aggs":{
"all_totals":{
"terms":{
"field":"dateReleve",
"size": 10000 <----------------------
},
"aggs":{
"total_clients_cut":{
"sum":{
"field":"nbClientCoupe"
}
}
}
}
}
}
}
}
我得到了预期的结果,即sum_other_doc_count = 0。
我认为增加存储桶的大小不是一个好习惯,因为我们无法假设我们已经拥有多少文件。
所以我的问题是如何通过全局聚合获得预期的结果。
【问题讨论】:
-
你想归档什么?使用 terme 时,您必须提供大小。
-
抱歉,我不明白您关于归档的问题。在文档之后,没有提到 avg 聚合的大小,所以它不是强制性的。 elastic.co/guide/en/elasticsearch/reference/current/…
标签: elasticsearch