RestHighLevelClient 日期范围查询
时间: 2023-11-08 11:10:43 浏览: 215
RestHighLevelClient 是 Elasticsearch 官方提供的 Java 客户端,可以通过它来操作 Elasticsearch 的 REST API。要实现日期范围查询,可以使用 RangeQueryBuilder。
以下是一个示例代码:
```java
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
SearchRequest searchRequest = new SearchRequest("your_index_name");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("your_date_field")
.gte("2022-01-01")
.lte("2022-01-31");
searchSourceBuilder.query(rangeQueryBuilder);
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理查询结果
client.close();
```
上述代码中,先创建了一个 RestHighLevelClient 实例,并指定 Elasticsearch 的主机和端口。然后创建一个 SearchRequest 实例,指定要查询的索引名称。接着创建一个 SearchSourceBuilder 实例,用于构建查询语句。使用 QueryBuilders.rangeQuery 方法创建一个 RangeQueryBuilder 实例,指定要查询的日期字段名和日期范围。最后将 RangeQueryBuilder 实例设置为 SearchSourceBuilder 的查询条件,执行查询并获取查询结果。
需要注意的是,日期格式和日期字段名需要根据实际情况进行调整。另外,如果 Elasticsearch 集群启用了安全认证,还需要在 RestClient.builder 方法中设置相应的用户名和密码等认证信息。
阅读全文