我是靠谱客的博主 爱听歌微笑,最近开发中收集的这篇文章主要介绍Java之ES更新操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

下面记录来记录并分享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更新操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部