java - 如何通过 bulkrequest 更新嵌套的 elasticsearch 值?
问题描述
我们正在使用 AWS Elasticsearch - 7.7 版本
我已经在使用 Java API 的 ElasticSearch 索引中关注了更新嵌套字段
我有以下 JSON 弹性搜索
{
"_index": "product",
"_type": "_doc",
"_source": {
"id": 1,
"name": "test",
"properties": [{
"id": 1,
"qty": 10
}]
}
}
我有以下代码
BulkRequest request = new BulkRequest();
request.add(new UpdateRequest(<ES Endpoint>, 1))
.doc(XContentType.JSON, "name", "TEST 1"));
BulkResponse bulkResponse = restClient.bulk(request, RequestOptions.DEFAULT);
我应该如何更新“属性”值“数量”?
https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.8/java-docs-update.html
解决方案
您可以在调用中传递包含所有字段的 Map 以进行更新doc()
:
Map doc = new HashMap();
doc.put("name", "TEST 1");
doc.put("qty", 12);
request.add(new UpdateRequest("index", 1)
.doc(XContentType.JSON, doc));
推荐阅读
- machine-learning - 对展开的时间步进行切片 StandardScaler
- validation - .Net Core 更改密码验证器
- elasticsearch - 向映射添加属性是否需要重新索引?
- asp.net-mvc - Azure Active Directory 和单点登录的访问令牌
- mongodb - Mongo查询最小值最大值不包括匹配条件
- robotframework - 是否有任何关键字可以充当“等待关键字成功”?
- github - Github 上的 Markdown:如何在代码块内使用斜体(三个反引号)
- sql-server - 根据日期对列求和
- java - pkcs11异常解析配置:Unexpected value Token['(']
- tensorflow - 如何训练随机初始化的嵌入层?