Java之ES之文檔有則更新無則新增

下面繼續來記錄和更新ES相關操作:

與數據庫的更新操作類似,es同樣也有有則更新無則插入的操作,如下所示:

public class ElasticSearchUtils {
	//有則更新,無則插入
	public void upsertDemo(TransportClient client) {
		try {
			IndexRequest indexRequest = new IndexRequest("index", "type", "1")
				.source(jsonBuilder()
						.startObject()
						.field("name", "Joe Smith")
						.field("gender", "male")
						.endObject());
			UpdateRequest updateRequest = new UpdateRequest("index", "type", "1")
				.doc(jsonBuilder()
						.startObject()
						.field("gender", "male")
						.endObject()
						).upsert(indexRequest);
			client.update(updateRequest).get();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		} catch (ExecutionException e) {
			e.printStackTrace();
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章