ElasticSearch 学习:JAVA HighLevel REST Client--获取文档

ElasticSearch HighLevel REST Client API网址为https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.4/index.html,要是特别注意版本号。

ElasticSearch6.4.2 的doc文档见于 https://static.javadoc.io/org.elasticsearch/elasticsearch/6.4.2/overview-summary.html

ElasticSearch6.4的用户手册见于https://www.elastic.co/guide/en/elasticsearch/reference/6.4/getting-started.html

一、按照索引号获取文档内容

获取文档信息对应于HTTP的get请求,使用普通网页请求显示为

使用curl命令显示为:

当使用ES自带的 Java High Level REST Client获取文档信息的步骤为:

1.新建一个客户client用于发送请求和接收响应值

RestHighLevelClient client = new RestHighLevelClient(

                           RestClient.builder(new HttpHost("10.0.2.190",9200,"http")));

其中10.0.2.190为ES运行的主机,9200为端口号(默认),与trasport API和LOW LEVEL API不同。ES使用的是http协议,故最后指定了http,也可以不提供第三个参数,默认使用http

2.生成一个请求内容。

GetRequest getRequest = new GetRequest("music","songs","1");

其中,music为index,songs为type,“1”表示索引号,根据此索引号获取文档。

为什么要用GET而不用POST?

这是由ES本身定义的,根据ES官方文档,获取文档的Document API就是https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-get.html

3.等待接收响应。

GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);

需要说明的是,此处的申请是同步处理。即客户端发送请求后一直等着消息返回。

HighLevel REST Client同时提供了异步处理方式,调用方法为client.getAsync(getRequest, RequestOptions.DEFAULT, listener);

其中,listener为ActionListener<GetResponse>泛型函数,用户需要自行实现回调函数 ActionListener中的 onResponse和onFailure。

4.处理响应。

if(getResponse.isExists()) {

                     System.out.println(getResponse.getSourceAsString());

              }

我这里只是简单的将其输出至控制台,你也可以做其他的处理。

5.关闭客户client

client.close();

至此,使用按照索引号获取文档内容就结束了。

猜你喜欢

转载自blog.csdn.net/ddsszzy/article/details/83895355