我想获取1000到2000之间的值。我尝试了以下查询:
{
"query": {
"bool": {
"filter": [{
"range": {
"price": {
"gte": 1000
},
"price": {
"lte": 2000
}
}
}]
}
}
}
但这不会给出令人满意的结果。大于工作正常。我正在使用elasticsearch v6.3。请同时为两个值提供包含和排除的解决方案。
答案 0 :(得分:7)
尝试一下:
{
"query": {
"range" : {
"price" : {
"gte" : 1000,
"lte" : 2000
}
}
}
}
范围查询
匹配具有术语在一定范围内的字段的文档。 Lucene查询的类型取决于字符串的字段类型 字段,即TermRangeQuery,而对于数字/日期字段,则查询为 一个NumericRangeQuery。
gte
-大于或等于
lte
-小于或等于
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html