ES-javaAPI

1. javaAPI操作

1.1 elasticsearch-rest-client

        (1) maven依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>${rest.client.version}</version><!-- 7.3.0 -->
</dependency>

         (2) 相关API(7.3.0)

1. 创建客户端

//es客户端构造器
RestClientBuilder builder = RestClient.builder(new HttpHost(String hostname, int port, String scheme));
Header[] defaultHeaders = new Header[]{new BasicHeader(String name, String value)};
//设置默认请求头
    builder.setDefaultHeaders(defaultHeaders);
//异常监听器
    builder.setFailureListener(new RestClient.FailureListener(){
            @Override
            public void onFailure(Node node) {
                // TODO  es异常监听处理
                System.out.println(21321321);
            }
        });
//配置线程数
    builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback(){
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                httpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(1).build());
                return httpAsyncClientBuilder;
            }
        });
//设置超时时间
    builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback(){
            @Override
            public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder builder) {
                builder.setConnectTimeout(5000);
                builder.setSocketTimeout(60000);
                return builder;
            }
        });
//创建客户端
 RestClient restClient = builder.build();

2.  定义请求信息

Request request = new Request(String method, String endpoint);

3. 定义参数实体

HttpEntity entity=new NStringEntity(String data, ContentType contentType);//json ContentType.APPLICATION_JSON

4. 响应

Response response = restClient.performRequest(Request request);//同步
Response response = restClient.performRequestAsync(Request request, ResponseListener responseListener);//异步

5. 响应信息

response.getStatusLine().getStatusCode();//状态码
String responseBody  = EntityUtils.toString(response.getEntity());//响应体

(3) 实例(7.3.0) 

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));//设置HttpHost,可设置多个
Header[] defaultHeaders = new Header[]{new BasicHeader("header", "value")};
    builder.setDefaultHeaders(defaultHeaders);//设置请求头
    builder.setFailureListener(new RestClient.FailureListener(){
            @Override
            public void onFailure(Node node) {
                // TODO  es异常监听处理
            }
        });
     builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback(){
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpAsyncClientBuilder) {
                 // TODO  连接池配置eshttpAsyncClientBuilder.setDefaultIOReactorConfig(IOReactorConfig.custom().setIoThreadCount(1).build());
                return httpAsyncClientBuilder;
            }
        });
    builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback(){
            @Override
            public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder builder) {
        // TODO  超时时间配置
                builder.setConnectTimeout(5000);
                builder.setSocketTimeout(60000);
                return builder;
            }
        });
RestClient restClient = builder.build();
String queryString="";//定义查询json
HttpEntity entity = new NStringEntity(queryString, ContentType.APPLICATION_JSON);
Request request = new Request("get", "index/_search");
     request.setEntity(entity);//设置参数及查询条件
Response response = restClient.performRequest(request);//请求获取响应信息
 System.out.println(response.getStatusLine().getStatusCode());//响应状态码
 String responseBody  = EntityUtils.toString(response.getEntity());//获取响应体


1.2 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑重其事,鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值