elasticsearch 如何在Elasticsearch的父子映射中禁用路由?
我已明确禁用Elasticsearch(ES)映射的路由: 在执行curl命令删除和更新新映射后,当执行_cluster/state命令时,我仍然启用了路由:
elasticsearch 如何在Elasticsearch的父子映射中禁用路由?,
elasticsearch,
elasticsearch,我已明确禁用Elasticsearch(ES)映射的路由: 在执行curl命令删除和更新新映射后,当执行_cluster/state命令时,我仍然启用了路由: "mappings" : { "chow-clfg" : { "_id" : { "path" : "clfg" }, "_routing" : { "required" : true }, "_ttl" : { "enabled" : true, "default" : 3600000
"mappings" : {
"chow-clfg" : {
"_id" : {
"path" : "clfg"
},
"_routing" : {
"required" : true
},
"_ttl" : {
"enabled" : true,
"default" : 3600000
},
"properties" : {
"@timestamp" : {
"format" : "dateOptionalTime",
"type" : "date"
},
"clfg" : {
"analyzer" : "keyword",
"type" : "string"
},
"count" : {
"type" : "long"
}
},
"_parent" : {
"type" : "chow-demo"
}
}
因此,这给我留下了以下问题:
子文档必须与其父文档存储在同一个分片中。这就是为什么需要为子文档发送路由。默认情况下,文档按其id值传送,因此子文档使用父文档的id进行传送。你可以改变它。只要家长和他们的所有孩子使用相同的路由值,您就可以了。路由字段不必是唯一的,但要获得良好的性能,它应该或多或少均匀分布。否则,您可能会在一个碎片中有很多记录,而在另一个碎片中只有少数记录
"mappings" : {
"chow-clfg" : {
"_id" : {
"path" : "clfg"
},
"_routing" : {
"required" : true
},
"_ttl" : {
"enabled" : true,
"default" : 3600000
},
"properties" : {
"@timestamp" : {
"format" : "dateOptionalTime",
"type" : "date"
},
"clfg" : {
"analyzer" : "keyword",
"type" : "string"
},
"count" : {
"type" : "long"
}
},
"_parent" : {
"type" : "chow-demo"
}
}