获取ElasticSearch中日期直方图上缺少字段的文档数?

时间:2017-03-22 09:41:27

标签: php json elasticsearch

我正在尝试找出每天不包含某个字段的文档数量。

我的想法是我可以计算每日回复率统计数据。

我正在使用PHP,但可以愉快地将JSON查询转换为合适的嵌套数组。

这是我到目前为止所拥有的。

$params['aggs'] = [
                "daily"=> [
                    "date_histogram"=> [
                        "field" => "date_created",
                        "interval" => "1d",
                        "min_doc_count" => 0
                    ],
                    "aggs"=>[
                        "unresponded"=>[
                            "missing"=>[
                                "field"=> "responses"
                            ]
                        ]
                    ]
                ]
            ];

这会返回数据,并为每个unresponded存储桶按预期添加daily存储桶,但这些值与数据不符。相反,daily存储区中的每个文档都会在unresponded存储桶中计算,无论该特定日期的文档是否具有response字段。

1 个答案:

答案 0 :(得分:0)

看起来missing聚合对现有但空的数组字段不起作用。我必须重新编写聚合以使用必须存在的布尔值。

"aggs"=>[
    "responded"=>[
          "filter"=>[
               "query"=>[
                   "bool"=>[
                       "must_not"=>[
                           "exists"=>[
                               "field"=>"responses"
                            ]
                        ]
                    ]
                ]
           ]
      ]
]