如何查询elasticsearch大于和小于?

Rak*_*kmo 11 elasticsearch

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

{
    "query": {
        "bool": {
            "filter": [{
                "range": {
                    "price": {
                        "gte": 1000
                    },
                    "price": {
                        "lte": 2000
                    }
                }
            }]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*kov 17

返回price值介于1000和2000(含)之间的文档。

{
    "query": {
        "range" : {
            "price" : {
                "gte" : 1000,
                "lte" : 2000
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

范围查询

将文档与字段在一定范围内的字段匹配。Lucene查询的类型取决于字段类型,对于字符串字段,是TermRangeQuery,而对于数字/日期字段,该查询是NumericRangeQuery。

gte -大于或等于

lte -小于或等于

gt - 比...更棒

lt - 少于

https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/query-dsl-range-query.html