使用Java API更新ElasticSearch索引中的嵌套字段
我正在使用Java API对Elasticsearch进行CRUD操作。
我有一个带有嵌套字段的类型,我想更新此字段。
这是我对类型的映射:
"enduser": { "properties": {
"location": {
"type": "nested",
"properties":{
"point":{"type":"geo_point"}
}
}
}
}
当然,我的最终用户类型将具有其他参数。
现在,我想将此文档添加到我的嵌套字段中:
"location":{ "name": "London",
"point": "44.5, 5.2"
}
我在文档中搜索有关如何更新嵌套文档的信息,但找不到任何东西。例如,我在字符串中具有先前的JSON对象(我们将此字符串称为json)。我尝试了以下代码,但似乎无法正常工作:
params.put("location", json);client.prepareUpdate(index, ElasticSearchConstants.TYPE_END_USER,id).setScript("ctx._source.location = location").setScriptParams(params).execute().actionGet();
我有来自Elasticsearch的解析错误。有人知道我在做什么错吗?
回答:
我试图重新创建您的情况,并通过其他方法使用.setScript方法来解决。
您的更新请求现在看起来像:
client.prepareUpdate(index, ElasticSearchConstants.TYPE_END_USER,id).setScript("ctx._source.location =" + json).execute().actionGet()
希望对您有帮助。
以上是 使用Java API更新ElasticSearch索引中的嵌套字段 的全部内容, 来源链接: utcz.com/qa/430384.html