es QueryBuilders in 范围查询
时间: 2023-12-29 14:52:07 浏览: 107
在 Elasticsearch 中,您可以使用 QueryBuilders 中的范围查询来查找某个字段在指定范围内的文档。范围查询可以用于数值、日期和字符串字段。
以下是一个使用范围查询的示例:
```java
SearchResponse response = client.prepareSearch("index_name")
.setQuery(QueryBuilders.rangeQuery("field_name").from(10).to(20))
.get();
```
这将返回所有 "index_name" 索引中 "field_name" 字段值在 10 和 20 之间的文档。您也可以使用 `gte`(大于或等于)和 `lte`(小于或等于)方法来指定范围。例如:
```java
SearchResponse response = client.prepareSearch("index_name")
.setQuery(QueryBuilders.rangeQuery("field_name").gte("2020-01-01").lte("2020-12-31"))
.get();
```
这将返回所有 "index_name" 索引中 "field_name" 字段值在 2020 年的文档。请注意,对于日期字段,您需要使用正确的日期格式进行查询。
相关问题
es QueryBuilders in 查询
Elasticsearch提供了很多不同类型的查询,其中包括基于全文搜索、词条匹配、范围查询、模糊查询、前缀查询等。在Elasticsearch中,使用QueryBuilders可以很方便地构建各种查询。其中,in查询可以使用terms query实现。
terms query用于匹配指定字段的多个值,其语法如下:
```
{
"terms": {
"字段名": ["值1", "值2", ...]
}
}
```
例如,查询age字段等于5或10或15的文档,可以使用以下查询:
```
{
"query": {
"terms": {
"age": [5, 10, 15]
}
}
}
```
这样就可以返回age字段等于5或10或15的文档。需要注意的是,terms查询只能用于精确匹配,不能用于模糊匹配。
阅读全文
相关推荐

















