elasticsearch 如何在桶聚合中包括交叉筛选单据计数?,elasticsearch,kibana,elasticsearch,Kibana" /> elasticsearch 如何在桶聚合中包括交叉筛选单据计数?,elasticsearch,kibana,elasticsearch,Kibana" />

elasticsearch 如何在桶聚合中包括交叉筛选单据计数?

elasticsearch 如何在桶聚合中包括交叉筛选单据计数?,elasticsearch,kibana,elasticsearch,Kibana,我有一个包含大量文档和许多字段的ElasticSearch索引,我们对这些文档应用了几个可选的多术语过滤器。我在聚合中包括文档计数,以显示可用的筛选器值以及与该筛选器匹配的文档数的投影 然而,我遇到的问题是,当我应用过滤器时,我希望在其他存储桶中获得过滤结果的调整文档计数,同时仍将文档计数保留在同一存储桶中 例如,我有一个品牌过滤器,其值为“Foo”,doc_计数为6,值为“Bar”,doc_计数为10。我有一个大小过滤器,它的值为“小”,doc_计数为8,值为“大”,doc_计数为8。当我应用

我有一个包含大量文档和许多字段的ElasticSearch索引,我们对这些文档应用了几个可选的多术语过滤器。我在聚合中包括文档计数,以显示可用的筛选器值以及与该筛选器匹配的文档数的投影

然而,我遇到的问题是,当我应用过滤器时,我希望在其他存储桶中获得过滤结果的调整文档计数,同时仍将文档计数保留在同一存储桶中

例如,我有一个品牌过滤器,其值为“Foo”,doc_计数为6,值为“Bar”,doc_计数为10。我有一个大小过滤器,它的值为“小”,doc_计数为8,值为“大”,doc_计数为8。当我应用品牌过滤器“Foo”时,我希望“small”doc_计数更新为3,以反映有3个大小为small的Foo文档。但是,我希望“Bar”过滤器仍然出现在doc_计数为10的bucket聚合中

当前,该呼叫看起来如下所示:

{
    "query": {
        "bool": {
            "must": [],
            "must_not": [],
            "should": [],
            "filter": [
                {
                    "terms": {
                        "brand.lower": [
                            "Foo"
                        ]
                    }
                }
            ]
        }
    },
    "aggs": {
        "brand": {
            "terms": {
                "field": "brand.keyword"
            }
        },
        "size": {
            "terms": {
                "field": "size.keyword"
            }
        }
    },
    "_source": [
        "brand",
        "size"
    ],
    "size": 35,
    "from": 0
}
我的问题是:即使在单个查询中应用了“Foo”过滤器,是否也可以保留“Bar”的bucket doc_计数,还是必须使用不同的过滤器上下文运行多个查询?谢谢大家!