import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.Request;
import org.elasticsearch.client.Response;
import org.elasticsearch.client.ResponseListener;
public class ElasticSearchExample {
public static void main(String[] args) {
// 创建RestClientBuilder
RestClientBuilder builder = RestClient.builder(
new HttpHost("localhost", 9200, "http"));
try (RestClient restClient = builder.build()) {
// 创建一个请求对象
Request request = new Request("GET", "/posts/_search");
// 设置请求参数(如果有)
// request.setEntity(new StringEntity("{...}"));
// 异步执行请求
restClient.performRequestAsync(request, new ResponseListener() {
@Override
public void onSuccess(Response response) {
// 处理响应
System.out.println(response.getEntity());
}
@Override
public void onFailure(Exception exception) {
// 处理异常
exception.printStackTrace();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}
这段代码展示了如何使用Elasticsearch的RestClient来异步执行GET请求。首先,我们创建了一个RestClientBuilder
实例,并指定了Elasticsearch节点的信息。然后,我们构建了一个Request
对象,指定了请求方法和路径。接着,我们使用performRequestAsync
方法异步发送请求,并提供了ResponseListener
的实现来处理响应或异常。这是一个简化的例子,实际使用时可能需要更复杂的请求设置和响应处理。