[英]Error when trying to rename a nested object name in 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"
}
}
它將column=Customer ImpactedNested
的列值更新為 ID 為2020-06-15T22:23:00Z_-1344027716
的CustomerImpactedNested
文檔。
並且Customer ImpactedNested
是一個嵌套的 object 並且您正在嘗試為嵌套的 object 字段設置一個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")"""
}
}
請嘗試上述方法並讓我知道錯誤,因為我沒有嘗試上述查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.