本文介绍了elasticsearch Java high level rest client的基本使用,索引的创建,查询,删除,修改操作,java 如何操作elasticsearch
elasticsearch支持的cient
参考连接:https://www.elastic.co/guide/en/elasticsearch/client/index.html
java high level rest client
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html
java maven工程中引入相应jar依赖包
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.17.6</version>
</dependency>
Gradle管理的工程引入依赖
dependencies {
compile 'org.elasticsearch.client:elasticsearch-rest-high-level-client:7.17.6'
}
es java client初识化
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("localhost", 9200, "http"),
new HttpHost("localhost", 9201, "http")));
关闭client代码
client.close();
elasticsearch带用户校验的client连接方式
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("esuser", "espasswd"));
client = new RestHighLevelClient(RestClient.builder(new HttpHost("http://xxxxxx", 9200))
.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
}));
es索引创建
json串形式数据
IndexRequest request = new IndexRequest("posts");
request.id("1");
String jsonString = "{" +
"\"user\":\"kimchy\"," +
"\"postDate\":\"2013-01-30\"," +
"\"message\":\"trying out Elasticsearch\"" +
"}";
request.source(jsonString, XContentType.JSON);
map类型数据
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);
简单数据查询
GetRequest request = new GetRequest("posts","1"); //posts :索引名 , 1:索引ID
GetResponse getResponse = client.get(request, RequestOptions.DEFAULT);
String message = getResponse.getField("message").getValue(); //获取查询数据字段
删除数据
DeleteRequest request = new DeleteRequest("posts","1"); //posts :索引名, 1:索引ID
DeleteResponse deleteResponse = client.delete(request, RequestOptions.DEFAULT);
数据更新
UpdateRequest request = new UpdateRequest("posts", "1");
String jsonString = "{" +
"\"updated\":\"2017-01-01\"," +
"\"reason\":\"daily update\"" +
"}";
request.doc(jsonString, XContentType.JSON);
//map类型数据
Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("updated", new Date());
jsonMap.put("reason", "daily update");
UpdateRequest request = new UpdateRequest("posts", "1")
.doc(jsonMap);
//执行动作
UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT);
发表评论
取消回复