• 配置pom.xml
    <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.1.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.1.1</version>
        </dependency>
  • 配置been

    package com.elastic.search.client;
    
    import org.apache.http.HttpHost;
    import org.apache.http.auth.AuthScope;
    import org.apache.http.auth.UsernamePasswordCredentials;
    import org.apache.http.client.CredentialsProvider;
    import org.apache.http.impl.client.BasicCredentialsProvider;
    import org.elasticsearch.client.RestClient;
    import org.elasticsearch.client.RestHighLevelClient;
    import org.springframework.context.annotation.Bean;
    import org.springframework.stereotype.Component;
    import sun.java2d.DisposerRecord;
    
    import java.io.IOException;
    
    /**
     * @author huangdeyao
     * @date 2019/6/10 11:13
     */
    @Component
    public class ElasticsearchClient implements DisposerRecord {
    
      private RestHighLevelClient client;
    
      private final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
    
      @Bean
      public RestHighLevelClient getRestHighLevelClient() {
          credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("elastic", "123456"));
          client = new RestHighLevelClient(
                  RestClient.builder(
                          new HttpHost("192.168.177.128", 9200, "http"))
                          .setHttpClientConfigCallback(httpAsyncClientBuilder -> {
                              //这里可以设置一些参数,比如cookie存储、代理等等
                              httpAsyncClientBuilder.disableAuthCaching();
                              return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                          })
          );
    
          return client;
      }
    
      @Override
      public void dispose() {
          if (client != null) {
              try {
                  client.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
      }
    }
    
  • 添加index

          Map<String, Object> jsonMap = new HashMap<>();
          jsonMap.put("user", "kimchy");
          jsonMap.put("postDate", new Date());
          jsonMap.put("message", "trying out Elasticsearch");
          IndexRequest indexRequest = new IndexRequest("posts").id("1").source(jsonMap);
          try {
              IndexResponse response = restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);
              logger.info(response.toString());
          } catch(ElasticsearchException e) {
              if (e.status() == RestStatus.CONFLICT) {
    
              }
          }
  • 查询

    GetRequest getRequest = new GetRequest("index", "1");
          GetResponse response = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
          logger.info(response.toString());

官网文档

中间遇到的错误

[org.elasticsearch.action.index.IndexRequest.ifSeqNo
](https://www.yrclubs.com/details?id=89)

最后修改:2020 年 02 月 13 日
如果觉得我的文章对你有用,请随意赞赏