下面继续来记录和更新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();
}
}
}