ElasticSearch6.3.2 通过RestHighLevelClient实现Upsert

和自甴很熟 提交于 2020-03-02 16:43:25
ImpalaSQLTargetModel targetModel = generateTestImpalaSQLTargetModel(completedQuery);

                    //构建搜索条件,去索引中查找对应文档的索引,有的话就执行更新操作,没有的话就执行update操作,实现upsert
                    IndexRequest indexRequest = new IndexRequest(INDEX_NAME, TYPE_NAME, "1")
                        .source(JSONObject.toJSON(targetModel).toString(), XContentType.JSON);

                    //当需要update的时候才会设置对应需要更新的字段值
                    setUpsertFieldsValue(completedQuery, targetModel, queryId);

                    //构建update所需的请求参数
                    UpdateRequest updateRequest = new UpdateRequest(INDEX_NAME, TYPE_NAME, "1")
                        .doc(JSONObject.toJSON(targetModel).toString(), XContentType.JSON)
                        .upsert(indexRequest);

                    ActionListener<UpdateResponse> listener = geUpdateResponsetListener();
                    //异步更新
                    CLIENT.updateAsync(updateRequest, listener);

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!