如何查询elasticsearch大于和小于?

时间:2018-07-13 13:06:21

标签: elasticsearch

我想获取1000到2000之间的值。我尝试了以下查询:

{
    "query": {
        "bool": {
            "filter": [{
                "range": {
                    "price": {
                        "gte": 1000
                    },
                    "price": {
                        "lte": 2000
                    }
                }
            }]
        }
    }
}

但这不会给出令人满意的结果。大于工作正常。我正在使用elasticsearch v6.3。请同时为两个值提供包含和排除的解决方案。

1 个答案:

答案 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