簡體   English   中英

嘗試重命名 elasticsearch 中的嵌套 object 名稱時出錯

[英]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 作為測試(肯定是唯一的),但結果相同。

任何想法都會很棒!

其實有兩個問題。

  1. 您的查詢未重命名該字段。
  2. 重命名嵌套字段

問題的以下行中實際發生了什么:

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_-1344027716CustomerImpactedNested文檔。

並且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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM