您的位置:

用法介绍 Elasticsearch Java 客户端的使用

用法介绍 Elasticsearch Java 客户端的使用

更新:

Elasticsearch Java 客户端提供了与 Elasticsearch 集群交互的 Java API,支持所有 Elasticsearch 的核心功能,如索引、搜索、更新和删除文档,以及管理和监控集群等。

一、Elasticsearch Java 客户端的基本使用

连接 Elasticsearch 集群,首先需要建立一个 RestClient 或者 RestHighLevelClient 的实例。RestHighLevelClient 基于 RestClient,提供更高级别的方法,使用起来更方便。

RestHighLevelClient client = new RestHighLevelClient(
    RestClient.builder(new HttpHost("localhost", 9200, "http")));

下面的示例展示了如何使用高级 REST 客户端来索引文档。

IndexRequest request = new IndexRequest("posts");
request.id("1");
String jsonString = "{" +
    "\"user\":\"kimchy\"," +
    "\"postDate\":\"2013-01-30\"," +
    "\"message\":\"trying out Elasticsearch\"" +
    "}";
request.source(jsonString, XContentType.JSON);
IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);

二、搜索文档

使用`SearchRequest`和`SearchSourceBuilder`来构建一个搜索请求。可以设定一系列参数来定制搜索行为,例如设定查询条件、排序、分页等。

SearchRequest searchRequest = new SearchRequest("posts");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

处理搜索的响应也同样简单。`SearchResponse`包含了一系列`SearchHit`,每个`SearchHit`都有一个`source`字段,存储了原始文档的内容。

SearchHits hits = searchResponse.getHits();
for (SearchHit hit : hits) {
    String sourceAsString = hit.getSourceAsString();
    if (sourceAsString != null) {
        JsonParser parser = new JsonParser();
        JsonElement jsonElement = parser.parse(sourceAsString);
        System.out.println(jsonElement.toString());
    }
}

三、关闭客户端

当不再需要 Java 客户端与 Elasticsearch 交互时,可以通过 `close` 方法关闭连接。

client.close();

注意,通过 `close` 方法关闭 Java 客户端将会释放所有的资源,包括线程、连接,以及连接池。因此,记得在所有的操作都完成后,通过 `close` 方法关闭 Java 客户端。