<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>
复制代码
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;
@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 -> {
httpAsyncClientBuilder.disableAuthCaching();
return httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
})
);
return client;
}
@Override
public void dispose() {
if (client != null) {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
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
个人站点