开发者学堂课程【ElasticSearch 入门精讲:更新】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/631/detail/9992
更新
目录:
一、ES JavaPI 之更新
二、演示
一、ES JavaPI 之更新
@Test
public void testUpdate() throws Exception {
XContentBuilder source= XContentFactoryjsonBuilder)
.startObject(
.field("name", "hadoop")
.field("author", "CDH")
.field("version", 2.7)
.endObject);
client.prepareUpdatetindex,type, "1").setDoc(source).get();
testGet();
}
Source 一般是 Jason 格式的数据
/**
*测试修改*/
@Test
public void testUpdate){
l/需求∶针对索引库bigdata中type之product,将id为OiUhuGkBFmjDtb2b5p9的document的name更新为“独孤求败”version更新为1.6.5
(局部更新)
UpdateResponseresponse= client.prepareUpdate("bigdata", "product", "OiUhuGkBJFmjDtb2b5p9")
.setDoc("name","独孤求败","version","1.6.5")
.get(;
logger.info("获得了来自远程es集群的反馈信息是:"+response);
二、演示
/**
*需求:测试根据特定的 id 更新索引信息
*描述:针对索引库 bigdate 中 type 之 product,将 id 为
"0IUHUGKBJFMJDTB2B5P9的document 的 name 更新为
“SQOOP”",version 更新为1.6.5. (局部更新)
*/
@test
public void testUpdateByld(){
public void testUpdateByld({
client.prepareUpdnte(INDEX,TYPE,id ""0o-9q2oBAvDYwfvDRwhz')
.setDoc(new Product(name,”SQOOP”,last verson”1.6.5”),XContentType.JSON)
.get();
System. Out.println(“更新之后的反馈信息总是:+resopnse);
}
构造方法
Choose Fields to Initialze by Constructor 选中 name_String 和 last_versionString
更新结果是
[bigdata/BN7REDzSRfy947JINZmYvQ][bigdata][2]] DocumentMissingException[product][OUhuGkBJFmjDtb2b5p9] document missing
因为参数失误造成没有按照本来的意图更新,
所以更改为.setDoc(JSON.toJSONstring(new PrMduct( name:"saoor", last_version:“"1.6.5"7),XContentType.JSON)
刷新一下,更新成功。