es 批量upsert
使用场景
-
批量操作数据
-
如果存在这条数据,则更新,如果不存在这条数据 则插入
代码实现
private void insert(List<SaleStorageIn> saleStorageIns) { RestHighLevelClient client = elasticsearchClientBuilder.getClient(); // 创建批量操作请求 BulkRequest bulkRequest = new BulkRequest(); for (SaleStorageIn saleStorageIn : saleStorageIns) { IndexRequest indexRequest = new IndexRequest("index") .type("type") .id(String.valueOf(saleStorageIn.getId())) .source(BeanMap.create(saleStorageIn)); // 创建更新请求,指定index,type,id,如果indexRequest 有值 (存在该数据)则用doc指定的内容更新indexRequest中指定的source,如果不存在该数据,则插入一条indexRequest指定的source数据 UpdateRequest updateRequest = new UpdateRequest("index", "type", String.valueOf(saleStorageIn.get