如何使用 elasticsearch 创建动态价格范围过滤器
How to create a dynamic price range filter using elasticsearch
价格范围聚合
{
"aggs": {
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{
"to": 50
},
{
"from": 50,
"to": 100
},
{
"from": 100
}
]
}
},
"price_stats": {
"extended_stats": {
"field": "price"
}
}
}
}
有什么方法可以使范围动态化。例如,min_price 代替 50,max_price 代替 100。或者使用 "price_stats.max" 代替 max_price?
你可以得到这样的东西
"max_price" : { "max" : { "field" : "discountprice" } },
"min_price" : { "min" : { "field" : "discountprice" } }
然后在应用层创建一个范围
价格范围聚合
{
"aggs": {
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{
"to": 50
},
{
"from": 50,
"to": 100
},
{
"from": 100
}
]
}
},
"price_stats": {
"extended_stats": {
"field": "price"
}
}
}
}
有什么方法可以使范围动态化。例如,min_price 代替 50,max_price 代替 100。或者使用 "price_stats.max" 代替 max_price?
你可以得到这样的东西
"max_price" : { "max" : { "field" : "discountprice" } },
"min_price" : { "min" : { "field" : "discountprice" } }
然后在应用层创建一个范围