【问题标题】:elasticsearch 2.0 parent child grandchildelasticsearch 2.0 父子孙子
【发布时间】:2016-02-13 16:41:39
【问题描述】:

我的操作:

父:国家,子:分公司,孙:员工

PUT /company { "映射": { “分支”: { “_父”:{ “类型”:“国家” } }, “员工”: { “_父”:{ “类型”:“分支” } } } }

我想添加一个孙子employee2,父级是分支:

PUT /company/employee2/_mapping { "employee2": { “_父”:{ “类型”:“分支” } } }

我收到错误信息:

{ “错误”:{ “根本原因”: [ { "type": "illegal_argument_exception", “原因”:“无法添加指向已存在类型的 _parent 字段” } ], "type": "illegal_argument_exception", "reason": "can't add a _parent field that point to a already existing type" }, "status": 400 }

我不知道该怎么办。有什么建议吗?谢谢。

【问题讨论】:

    标签: elasticsearch parent elasticsearch-2.0


    【解决方案1】:

    这是在 elasticsearch 2.0 中施加的限制。 breaking changes in 2.0 中提到了这一点。然而,这背后的原因在文档中并不清楚。

    以下是弹性搜索开发人员 martijnvg 在弹性搜索上发布的讨论线程:

    新的子类型不能将现有类型作为父类型。

    这与新父母/孩子的事实有关 实现父类型和子类型都在连接字段中存储 id。 如果类型在创建后成为父级,则为父级 可能已对未将其 ID 存储在联接中的文档进行索引 场地。因此,存在此限制。

    这仅适用于升级到 ES 2.0 后创建的新索引。 出于迁移目的,此限制不适用于索引 在升级到 ES 2.0 之前创建。事实上在 ES 1.x 和 在使用旧的父/子实现之前。

    你可以在这里阅读: https://discuss.elastic.co/t/adding-child-types-in-2-0/33267

    【讨论】:

      【解决方案2】:

      好的 我发现了问题 - 您无法使用现有类型创建父子关系 删除索引后一切正常

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-06
        • 2017-12-15
        • 1970-01-01
        • 1970-01-01
        • 2021-09-19
        • 1970-01-01
        • 2019-01-10
        相关资源
        最近更新 更多