弹性搜索解决方案文档使用JAVA Api代码更新多个字段

时间:2014-01-28 11:55:40

标签: java elasticsearch java-api

演示如何更新弹性搜索文档

上的多个字段的示例
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客户端

1 个答案:

答案 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();

通过这种方式,您可以更新文档中的多个值