什么时候“桶”:[]聚合?

时间:2018-03-06 16:03:40

标签: elasticsearch

我的查询是嵌套聚合

aggs: {
    src: {
        terms: {
            field: "dst_ip",
            size: 1000,
        },
        aggs: {
            dst: {
                terms: {
                    field: "a_field_which_changes",
                    size: 2000,
                },
            },
        },
    },

查询运行的典型文档位于下方(映射都是keyword类型的<)>

{
    "_index": "honey",
    "_type": "event",
    "_id": "AWHzRjHrjNgIX_EoDcfV",
    "_score": 1,
    "_source": {
      "dst_ip": "10.101.146.166",
      "src_ip": "10.10.16.1",
      "src_port": "38",
    }
},

我实际上有两个查询,一个接一个。它们的不同之处在于a_field_which_changes的值,在一个查询中为"src_ip",在另一个查询中为"src_port"

在第一个查询中,所有结果都很好。聚合是1个元素大,并且桶指定该元素与

匹配的内容
{
    "key": "10.6.17.218",      <--- "dst_ip" field
    "doc_count": 1,
    "dst": {
    "doc_count_error_upper_bound": 0,
    "sum_other_doc_count": 0,
    "buckets": [
        {
        "key": "-1",       <--- "src_port" field
        "doc_count": 1
        }
    ]
    }
},

另一个查询会产生两种不同的结果:

{
    "key": "10.6.17.218",
    "doc_count": 1,
    "dst": {
    "doc_count_error_upper_bound": 0,
    "sum_other_doc_count": 0,
    "buckets": []
    }
},
{
      "key": "10.237.78.19",
      "doc_count": 1,
      "dst": {
        "doc_count_error_upper_bound": 0,
        "sum_other_doc_count": 0,
        "buckets": [
          {
            "key": "10.12.67.89",
            "doc_count": 1
          }
        ]
      }
 },

第一个结果是有问题的:它没有给出桶的细节。它与另一个没有什么不同,但不知何故细节都缺失了。

为什么会这样,最重要的是 - 如何强制Elasticsearch显示存储桶的详细信息?

documentation详细介绍了如何干扰聚合,但我找不到任何相关内容。

0 个答案:

没有答案