public classUpdateElasticAPI {private staticRestClient restClient;static{
restClient=RestClient.builder(new HttpHost("localhost",9200,"http")).build();
}/*** 1.创建文档
*@throwsException*/@Testpublic void CreateDocument()throwsException{
String method= "PUT";
String endpoint= "/update_index/test/1";
HttpEntity entity= newNStringEntity("{\n" +
" \"counter\" : 1,\n" +
" \"tags\" : [\"red\"]\n" +
"}", ContentType.APPLICATION_JSON);
Response response= restClient.performRequest(method,endpoint, Collections.emptyMap(),entity);
System.out.println(EntityUtils.toString(response.getEntity()));
}/***2. 获取文档
*@throwsException*/@Testpublic void getDocument()throwsException{
String method= "GET";
String endpoint= "/update_index/test/1";
Response response=restClient.performRequest(method,endpoint);
System.out.println(EntityUtils.toString(response.getEntity()));
}/*** 3.更新文档,给counter字段加4
*@throwsException*/@Testpublic void UpdateDocument()throwsException{
String method= "POST";
String endpoint= "/update_index/test/1/_update";
HttpEntity entity= newNStringEntity("{\n" +
" \"script\" : {\n" +
" \"source\": \"ctx._source.counter += params.count\",\n" +
" \"lang\": \"painless\",\n" +
" \"params\" : {\n" +
" \"count\" : 4\n" +
" }\n" +
" }\n" +
"}", ContentType.APPLICATION_JSON);
Response response= restClient.performRequest(method,endpoint, Collections.emptyMap(),entity);
System.out.println(EntityUtils.toString(response.getEntity()));
}/*** 4.部分文档更新增加字段(不存在name字段),存在则覆盖
*@throwsException*/@Testpublic void SomeUpdateDocument()throwsException{
String method= "POST";
String endpoint= "/update_index/test/1/_update";
HttpEntity entity= newNStringEntity("{\n" +
" \"doc\" : {\n" +
" \"user\" : \"kimchy\"\n" +
" }\n" +
"}", ContentType.APPLICATION_JSON);
Response response= restClient.performRequest(method,endpoint, Collections.emptyMap(),entity);
System.out.println(EntityUtils.toString(response.getEntity()));
}/*** 5.按查询API更新*/}