elasticsearch - 尝试在Elasticsearch中重命名嵌套对象名称时出错

标签 elasticsearch elastic-stack elasticsearch-nested

我正在尝试重命名这种形状的数据:

enter image description here

使用这个:

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"

我已经确认“客户影响嵌套”的类型是嵌套的。我在网上看到有关人们遇到此错误的信息,但是在尝试重命名时却没有,也没有看到任何解决方案。我看到一篇文章指出新名称与现有名称冲突时发生。因此,尝试重命名为CustomerImpactedNested11111作为测试(确保是唯一的),但结果相同。

任何想法都很棒!

最佳答案

实际上有两个问题。

  • 您的查询未重命名该字段。
  • 重命名嵌套字段

  • 问题的以下行中实际上发生了什么:
    POST r_xair_signals-2020-06/_update/2020-06-15T22:23:00Z_-1344027716
    {
      "doc" : {
            "Customer ImpactedNested" : "CustomerImpactedNested"
        }
    }
    
    它将column=Customer ImpactedNested列值更新为ID为CustomerImpactedNested2020-06-15T22:23:00Z_-1344027716文档。Customer ImpactedNested是一个嵌套对象,您正在尝试将string值设置为嵌套对象字段。因此,您将收到错误。 Refer this
    谈到您的原始问题,您需要通过reindex进行此操作。 Refer thisthis also
    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")"""
      }
    }
    
    请尝试上述操作,并让我知道错误,因为我没有尝试上述查询。

    关于elasticsearch - 尝试在Elasticsearch中重命名嵌套对象名称时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62472971/

    相关文章:

    elasticsearch - 在群集中找不到事件的节点

    security - 如何在弹性云上进行IP过滤

    elasticsearch - 仅返回对象中包含特定值的数组元素

    具有分层类别、子类别的 Elasticsearch 聚合;限制水平

    bash - 在 Azure 管道中,linux 命令在脚本文件末尾被截断

    elasticsearch - 如何在ElasticSearch中查询可以为整数值的关键字嵌套字段?

    java - elasticsearch 6.3.2 的 NestedSortBuilder 使用示例

    elasticsearch - 信息检索 - 我如何处理将单个单词分解为多个标记的搜索查询

    elasticsearch - Elasticsearch-错误的字段类型

    elasticsearch - 在 Elasticsearch 中更改集群名称