下面繼續來記錄和更新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();
}
}
}