我有一个包含大量文档和许多字段的elasticsearch索引,我们对这些文档应用了几个可选的多项过滤器。我在聚合中包含文档计数,以显示可用的筛选器值以及与该筛选器匹配的文档数的投影。
但是,我遇到的问题是,当我应用过滤器时,我希望在其他bucket中获得过滤结果的已调整文档计数,同时仍将文档计数保持在同一个bucket中。
例如,我有一个品牌过滤器,其值“foo”的doc\u计数为6,“bar”的doc\u计数为10。我有一个大小过滤器,值为“small”,doc\u count为8,值为“large”,doc\u count为8。当我应用品牌过滤器“foo”时,我希望“small”文档计数更新为3,以反映有3个大小为small的foo文档。但是,我希望“bar”过滤器仍然出现在doc\u计数为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\u计数,还是必须使用不同的筛选器上下文运行多个查询?谢谢您!
暂无答案!
目前还没有任何答案,快来回答吧!