gpt4 book ai didi

ElasticSearch - 如何从聚合中排除过滤器?

转载 作者:行者123 更新时间:2023-11-29 02:46:36 25 4
gpt4 key购买 nike

我有一个包含 3 个过滤器的过滤器查询:"query": "iphone", color:5, category:10, brand:25

如何获取具有color:5category:10 的每个品牌的产品数量?

在 Solr 中我是这样做的:

fq={!tag=tag_facet_brand}facet_brand:"564"&facet.field={!ex=tag_facet_brand}facet_brand

如何从聚合上下文中排除 1 个过滤器? (我不能使用全局,因为我丢失了 query:iphone,而且我不能使用 post_filter - 因为性能)。

最佳答案

我们刚刚从 SOLR 转移,我们面临着同样的问题。

您可以尝试全局存储桶,然后添加一个 query filter对于每个桶:

"filter" : {
"query" : {
"query_string" : {
"query" : "iPhone"
}
}
}

你应该以这样的方式结束:

{
"size": 10,
"query": {
"query_string": {
"query": "iphone"
}
},
"filter": {
"bool": {
"must": [
{
"term": {
"brand": "564"
}
},
{
"term": {
"color": "5"
}
},
{
"term": {
"category": "10"
}
}
]
}
},
"aggs": {
"all": {
"global": {},
"aggs": {
"keyword": {
"filter": {
"bool": {
"must": [
{
"query": {
"query_string": {
"query": "iphone"
}
}
},
{
"term": {
"color": "5"
}
},
{
"term": {
"category": "10"
}
}
]
}
},
"aggs": {
"brand": {
"terms": {
"field": "brand"
}
}
}
}
}
}
}
}

关于ElasticSearch - 如何从聚合中排除过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26269604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com