下面记录来记录并分享ES相关操作:
单个文件更新实现方式如下所示:
/**
* create by wxy_jdhk
*/
public class ElasticSearchUtils {
//更新方式1
public void updateDocumentOne(TransportClient client) {
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("index");
updateRequest.type("_doc");
updateRequest.id("1");
try {
updateRequest.doc(
jsonBuilder()
.startObject()
.field("gender", "male")
.endObject()
);
UpdateResponse response = client.update(updateRequest).get();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
//更新方式2
public void updateDocumentTwo(TransportClient client) {
/*client.prepareUpdate("tt1", "_doc", "1")
.setScript(new Script(
"ctx._source.gender = "male"",
ScriptService.ScriptType.INLINE, null, null
)).get();*/
try {
client.prepareUpdate("tt1", "_doc", "1")
.setDoc(
jsonBuilder()
.startObject()
.field("gender", "male")
.endObject())
.get();
} catch (IOException e) {
e.printStackTrace();
}
}
//更新方式3
public void updateByScript(TransportClient client) {
UpdateRequest updateRequest = new UpdateRequest("ttl", "doc", "1")
.script(new Script("ctx._source.gender = "male""));
try {
client.update(updateRequest).get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
通过过滤器更新多个文档,实现方式如下所示:
/**
* create by wxy_jdhk
*/
public class ElasticSearchUtils {
public void updateDocumentByFilter(TransportClient client){
try {
UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
.doc(
jsonBuilder()
.startObject()
.field("gender", "male")
.endObject());
UpdateResponse response = client.update(updateRequest).get();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
最后
以上就是爱听歌微笑最近收集整理的关于Java之ES更新操作的全部内容,更多相关Java之ES更新操作内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复