演示如何更新弹性搜索文档
上的多个字段的示例Map<String, Object> updateObject = new HashMap<String, Object>();
updateObject.put("field1", "updated value for fields1");
updateObject.put("field2", "updated value for fields2");
updateObject.put("field3", "updated value for fields3");
Boolean meessage = client.prepareUpdate("indexName","indextype","documentId").setDoc(updateObject).setRefresh(true).execute().actionGet();
indexName将是您的索引名称 IndexType将是您的索引类型 documentId将是您要更新的documentId client是JAVA API的ElasticSeach客户端
答案 0 :(得分:1)
我认为您的问题是如何使用JAVA api更新多个字段。
使用BulkRequestBuilder
BulkRequestBuilder bulkRequest = client.prepareBulk();
bulkRequest.add(client.prepareUpdate("indexName","indextype","documentId")
.setScript("ctx._source.field1=" + newValueField1));
bulkRequest.add(client.prepareUpdate("indexName","indextype","documentId")
.setScript("ctx._source.field2=" + newValueField2));
BulkResponse bulkResponse = bulkRequest.execute().actionGet();
通过这种方式,您可以更新文档中的多个值