生成es的查询的JAVA代码,查询七天以内的数据的代码范例
时间: 2023-12-06 12:03:13 浏览: 107
基于JAVA的每日宜忌查询api调用代码实例.docx
下面是一个生成ES查询七天以内数据的JAVA代码范例:
```java
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
public class ESQueryExample {
public static void main(String[] args) throws IOException {
RestHighLevelClient client = ESClient.getClient();
SearchRequest searchRequest = new SearchRequest("your_index_name");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
// 设置查询条件,查询七天以内的数据
sourceBuilder.query(QueryBuilders.rangeQuery("@timestamp").gte("now-7d/d").lte("now/d"));
// 设置查询结果的大小,默认为10
sourceBuilder.size(100);
// 设置查询结果的超时时间,默认为1秒
sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
for (SearchHit hit : searchResponse.getHits().getHits()) {
String sourceAsString = hit.getSourceAsString();
System.out.println(sourceAsString);
}
client.close();
}
}
```
其中,ESClient是一个封装了ES连接的工具类,可以根据具体需求进行修改。在上面的代码中,我们使用了rangeQuery来设置时间范围查询条件,gte表示大于等于,lte表示小于等于。同时,我们也可以设置查询结果的大小和超时时间。最后,我们通过遍历searchResponse来获取查询结果。
阅读全文