elasticsearch 如何在Elasticsearch的父子映射中禁用路由?,elasticsearch,elasticsearch" /> elasticsearch 如何在Elasticsearch的父子映射中禁用路由?,elasticsearch,elasticsearch" />

elasticsearch 如何在Elasticsearch的父子映射中禁用路由?

elasticsearch 如何在Elasticsearch的父子映射中禁用路由?,elasticsearch,elasticsearch,我已明确禁用Elasticsearch(ES)映射的路由: 在执行curl命令删除和更新新映射后,当执行_cluster/state命令时,我仍然启用了路由: "mappings" : { "chow-clfg" : { "_id" : { "path" : "clfg" }, "_routing" : { "required" : true }, "_ttl" : { "enabled" : true, "default" : 3600000

我已明确禁用Elasticsearch(ES)映射的路由:

在执行curl命令删除和更新新映射后,当执行_cluster/state命令时,我仍然启用了路由:

"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"
      }
    }