java 查询es数据_es之java各种查询操作
时间: 2024-02-25 20:54:49 浏览: 59
Java 查询 ES 数据可以使用 Elasticsearch 的 Java 客户端 API,该 API 封装了 ES 的各种查询操作,包括:
1. Term Query:根据关键词进行查询。
2. Match Query:根据匹配进行查询。
3. Range Query:根据范围进行查询。
4. Wildcard Query:根据通配符进行查询。
5. Fuzzy Query:根据模糊匹配进行查询。
6. Bool Query:使用布尔运算符进行组合查询。
7. Filter Query:使用过滤器进行查询。
8. Aggregation:使用聚合操作进行查询分析。
下面是一个示例代码,演示了如何使用 Java 客户端 API 进行 Term Query 查询:
```
// 创建 ES 客户端
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
// 构建 Term Query 查询
QueryBuilder queryBuilder = QueryBuilders.termQuery("name", "John");
// 构建 SearchRequest
SearchRequest searchRequest = new SearchRequest("index_name");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(queryBuilder);
searchRequest.source(sourceBuilder);
// 执行查询
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理查询结果
SearchHits hits = response.getHits();
for (SearchHit hit : hits) {
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
System.out.println(sourceAsMap);
}
// 关闭 ES 客户端
client.close();
```
以上代码中,我们使用了 Term Query 进行查询,查询条件为 name 字段等于 John。构建查询条件后,我们使用 SearchRequest 构建查询请求,指定查询的索引、查询条件等信息。然后使用 ES 客户端执行查询,并处理查询结果。最后记得关闭 ES 客户端。
阅读全文