假设es中有一个商品索引,里面有price价格字段,类型为double,如何对其进行范围搜索
时间: 2024-05-14 16:16:05 浏览: 78
可以使用range查询来进行范围搜索,具体操作如下:
1. 使用range查询语句,指定要搜索的字段和价格范围,示例代码如下:
```
{
"query": {
"range": {
"price": {
"gte": 1000,
"lte": 2000
}
}
}
}
```
上述代码表示搜索price字段在1000到2000之间的所有商品。
2. 可以使用bool查询将多个范围查询组合起来进行复杂的搜索,示例代码如下:
```
{
"query": {
"bool": {
"must": [
{
"range": {
"price": {
"gte": 1000,
"lte": 2000
}
}
},
{
"range": {
"other_field": {
"gte": "some_value"
}
}
}
]
}
}
}
```
上述代码表示搜索price字段在1000到2000之间且other_field字段大于等于some_value的所有商品。
注意:range查询只能用于数值类型的字段,如果要对文本类型的字段进行范围搜索,可以使用match_phrase查询。
阅读全文