用例:
动态生成类型及其映射,为它们启用所有时间戳 &安培; ttl字段。还为所有类型定义相同的父类型,但 父类型本身(我知道它的名字)。
{
"template": "*",
"settings": {
...................
},
"mappings": {
"_default_": {
"_parent": {
"type": "ParentType"
},
"_timestamp": {
"enabled": true,
"store": true
},
"_ttl": {
"enabled": true
}
}
}
}
如何禁用ParentType类型本身的_parent字段?
答案 0 :(得分:1)
在对文档进行了大量挖掘之后,我发现您可以使用此工作覆盖__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__
中的任何映射。
在这种情况下,我们将_parent
my_parent_type
映射分配给您的索引中不必存在的_dummy
父类型。
注意:ElasticSearch 2.x文档声明:
_parent.type
设置只能指向尚不存在的类型。这意味着类型在创建后不能成为父类型。
出于这个原因,您必须确保索引第一个,一个非my_parent_type
类型的文档,否则您将获得索引时间。
我希望这会有所帮助。