gpt4 book ai didi

elasticsearch - Elasticsearch 相当于左联接

转载 作者:行者123 更新时间:2023-12-02 23:24:40 25 4
gpt4 key购买 nike

我正在我们的电子商务网站上使用品牌过滤器。缩进的行为是即使已选择任何品牌,仍将显示所有品牌,只应在所选品牌上过滤显示的项目。

我的搜索:

"query": {
"bool": {
"must": {
"match": {
"text": {
"query":"photo"
}
}
},
"filter": [
{
"term": { "brandName": "brodit" }
}
]
}
},
"aggs": {
"Brands": {
"terms": {
"field": "brandName"
}
}
}

我的意图和所得到的:

enter image description here

如我所见,这是因为我限制了基于过滤器的结果,并对过滤的结果进行了夸大。

最佳答案

更新:执行汇总时,您可以指定要对所有文档执行汇总。这可以通过将聚合范围设置为使用Global Bucket来实现。这是查询的修改版本。

"query": {
"bool": {
"must": {
"match": {
"text": {
"query":"photo"
}
}
},
"filter": [
{
"term": { "brandName": "brodit" }
}
]
}
},
"aggs": {
"Brands": {
"global": {},
"terms": {
"field": "brandName"
}
}

}

请参阅 Global Bucket文档的 Elasticsearch: Definitive Guide [2.x]部分以获取更多详细信息。

或者,您可以执行两个查询。一个查询不返回搜索结果(通过设置size = 0)来获得关于品牌的汇总,以显示过滤器选项。然后,当用户选择要过滤的特定品牌时,您将需要执行单独的查询而不进行汇总,以仅在搜索结果中显示属于该品牌的商品。

关于elasticsearch - Elasticsearch 相当于左联接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44803582/

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