繁体   English   中英

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

[英]Get count of documents missing a field over a date histogram in ElasticSearch?

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

我的想法是可以计算出每日响应率统计信息。

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

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

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

这会返回数据,并且按预期每个daily存储桶都unresponded ,但是这些值与数据不符。 取而代之的是, daily存储桶中的每个文档都将在未unresponded存储桶中进行处理,而不管该特定日期的文档是否具有response字段。

看起来missing聚合不适用于现有但空的数组字段。 我不得不对聚合进行重新处理,以使用布尔型必须存在的布尔值。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM