elasticsearch - 尝试在 elasticsearch 中重命名嵌套对象名称时出错
问题描述
我正在尝试重命名这种形状的数据:
使用这个:
POST r_xair_signals-2020-06/_update/2020-06-15T22:23:00Z_-1344027716
{
"doc" : {
"Customer ImpactedNested" : "CustomerImpactedNested"
}
}
但我得到:
"type": "mapper_parsing_exception",
"reason": "object mapping for [Customer ImpactedNested] tried to parse field [Customer ImpactedNested] as object, but found a concrete value"
我已经确认 Customer ImpactedNested 的类型是嵌套的。我在网上看到有关人们收到此错误的信息,但在尝试重命名时却没有,也没有看到任何解决方案。我看到一篇文章指出当新名称与现有名称冲突时会发生这种情况。因此,尝试重命名为 CustomerImpactedNested11111 作为测试(肯定是唯一的),但结果相同。
任何想法都会很棒!
解决方案
其实有两个问题。
- 您的查询未重命名该字段。
- 重命名嵌套字段
问题的以下行中实际发生了什么:
POST r_xair_signals-2020-06/_update/2020-06-15T22:23:00Z_-1344027716
{
"doc" : {
"Customer ImpactedNested" : "CustomerImpactedNested"
}
}
它将的列值更新为id 为column=Customer ImpactedNested
的文档。CustomerImpactedNested
2020-06-15T22:23:00Z_-1344027716
AndCustomer ImpactedNested
是一个嵌套对象,您正在尝试为string
嵌套对象字段设置一个值。因此你得到了错误。参考这个
来到你原来的问题,你需要通过reindex
. 参考这个,这个也
POST _reindex
{
"source": {
"index": "r_xair_signals-2020-06"
},
"dest": {
"index": "<some_new_index_name>"
},
"script": {
"inline": """ctx._source['CustomerImpactedNested'] = ctx._source.remove("Customer ImpactedNested")"""
}
}
请尝试上述方法并让我知道错误,因为我没有尝试上述查询。
推荐阅读
- metal - 如何优化金属管道
- javascript - 使用对象中最新的受影响数据
- javascript - 为什么这个用JS写的Function即使条件不满足也返回true?
- amazon-web-services - 如何通过 cloudformation 模板向 Kinesis Firehose Delivery 流添加标签?
- javascript - Wordpress / Modal / JS bug - 模态突然停止工作
- regex - 正则表达式 - 从字符串中提取子字符串
- javascript - 如何检测是否有 20% 的“
“可见吗? - java - 贝宝 Rest API SDK v2
- c# - 为什么我不能在“do while”循环的主体中声明一个变量?
- scilab - 使用 scilab 找到交点