gpt4 book ai didi

elasticsearch - 使用Elastic在Webshop中进行分面搜索

转载 作者:行者123 更新时间:2023-12-03 01:42:02 24 4
gpt4 key购买 nike

我已经看到了一些有关Elastic中的分面搜索的示例,但所有示例都预先了解了要创建存储桶的字段。

当我有一个具有多个类别的网上商店,每个类别的值的属性都不同时,应该如何工作?

有没有一种方法可以描述您在运行查询时文档的属性(例如按类别过滤)?

我现在有这个查询:

{
"from" : 0, "size" : 10,
"query": {
"bool" : {
"must" : [
{ "terms": {"color": ["red", "green", "purple"]} },
{ "terms": {"make": ["honda", "toyota", "bmw"]} }
]
}
},
"aggregations": {
"all_cars": {
"global": {},
"aggs": {
"colors": {
"filter" : { "terms": {"make": ["honda", "toyota", "bmw"]} },
"aggregations": {
"filtered_colors": { "terms": {"field": "color.keyword"} }
}
},
"makes": {
"filter" : { "terms": {"color": ["red", "green"]} },
"aggregations": {
"filtered_makes": { "terms": {"field": "make.keyword"} }
}
}
}
}
}
}

我如何知道可以对哪些字段进行汇总。运行查询后,有没有办法描述文档的属性?因此,我知道要汇总的可能字段是什么。

最佳答案

现在,我将文章的所有属性存储在一个数组中,可以像这样快速聚合它们:

{
"size": 0,
"aggregations": {
"array_aggregation": {
"terms": {
"field": "properties.keyword",
"size": 10
}
}
}
}

这是朝正确方向迈出的一步,但是那样我就不知道属性的类型是什么。

这是一个示例对象
            "price": 10000,
"color": "red",
"make": "honda",
"sold": "2014-10-28",
"properties": [
"price",
"color",
"make",
"sold"
]

关于elasticsearch - 使用Elastic在Webshop中进行分面搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807393/

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