ElasticSearch中long类型的数据如何进行范围查询BoolQueryBuilder
时间: 2024-05-16 15:17:12 浏览: 177
在ElasticSearch中,我们可以使用BoolQueryBuilder来进行范围查询。下面是一个例子:
```java
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
// 创建BoolQueryBuilder对象
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// 添加范围查询条件
boolQueryBuilder.must(QueryBuilders.rangeQuery("age").from(20L).to(30L));
// 执行查询
SearchResponse response = client.prepareSearch("index_name")
.setTypes("type_name")
.setQuery(boolQueryBuilder)
.get();
```
在上面的例子中,我们首先创建了一个BoolQueryBuilder对象,并使用must()方法添加了一个范围查询条件。其中,rangeQuery()方法用于创建范围查询,from()和to()方法则用于指定查询的范围,这里我们查询年龄在20到30岁之间的数据。最后,将BoolQueryBuilder对象传递给setQuery()方法,并执行查询即可。
注意:在使用范围查询时,需要注意字段类型与查询条件的类型是否一致,例如,如果字段类型为long,查询条件也应该为long类型。
阅读全文