gpt4 book ai didi

elasticsearch - 如何动态定义/覆盖 elasticsearch 中的_default_ 映射?

转载 作者:行者123 更新时间:2023-11-29 02:53:21 25 4
gpt4 key购买 nike

用例:

  1. 索引将从模板中动态构建,以便它将选择一些自定义设置(分片/副本/等的数量)。
  2. 动态生成类型及其映射,为它们启用所有时间戳& ttl 字段。还为所有类型定义相同的父类型,除了父类型本身(我知道它的名字)。

    {
    "template": "*",

    "settings": {
    ...................
    },

    "mappings": {

    "_default_": {
    "_parent": {
    "type": "ParentType"
    },
    "_timestamp": {
    "enabled": true,
    "store": true
    },
    "_ttl": {
    "enabled": true
    }
    }

    }
    }

如何禁用 ParentType 类型本身的 _parent 字段?

最佳答案

在深入研究文档后,我发现您可以使用此解决方法覆盖 __default__ 映射。

{
"mappings": {
"_default_": {
"_parent": {
"type": "my_parent_type" # 1
}
},
"my_parent_type": {
"_parent": {
"type": "_dummy" # 2
}
}
}
}

1) 此映射配置将被您的所有类型继承,包括my_parent_type类型。第 2 步解释了如何覆盖您的父类型 _parent 元字段。

2) 我在这里找到了https://www.elastic.co/guide/en/elasticsearch/reference/current/default-mapping.html当您为相关类型提供特定映射时,您可以覆盖 __default__ 中的任何映射。

在这种情况下,我们将 my_parent_type_parent 映射分配给索引中不必存在的 _dummy 父类型。

注意:ElasticSearch 2.x 文档指出:

The _parent.type setting can only point to a type that doesn’t exist yet. This means that a type cannot become a parent type after it is has been created.

出于这个原因,您必须确保首先 索引不是my_parent_type 类型的文档,否则您将在索引时得到一个。

希望对您有所帮助。

关于elasticsearch - 如何动态定义/覆盖 elasticsearch 中的_default_ 映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20401331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com