首页 > 其他分享 >IndexRequest与updateRequest

IndexRequest与updateRequest

时间:2023-03-18 16:14:50浏览次数:47  
标签:doc IndexRequest UpdateRequest json updateRequest upsert

 

问题:

使用 org.elasticsearch.client.RestHighLevelClient#bulk,BulkRequest添加的是IndexRequest,发现无法更新索引。

原因:

IndexRequest设定添加文档,

UpdateRequest设定更新文档,

设定upsert执行有则修改无则更新(upsert类型更新,文档不存在时创建)

 

解决:

 

 private UpdateRequest buildUpdateRequest(JSONObject json, String realIndexName) {

        UpdateRequest updateRequest = new UpdateRequest(realIndexName, "_doc", json.getString("id"));
        Map<String, Object> doc = Maps.newHashMap();
        for (String key : json.keySet()) {
            doc.put(camelToUnderscoreConverter.convert(key), json.get(key));
        }
        // upsert更新
        updateRequest.doc(doc).upsert();
        return updateRequest;
    }

 

标签:doc,IndexRequest,UpdateRequest,json,updateRequest,upsert
From: https://www.cnblogs.com/parkdifferent/p/17230960.html

相关文章

  • 关于backingStore和updateRequest事件
    关于backingStore的同步从QWidgetBackingStore::sync说起,调用关系如下:QWidgetPrivate::syncBackingStore=>QWidgetBackingStore::sync=>QWidgetBacki......