如何使用数百个字段快速创建ElasticSearch2.0映射

时间:2016-08-05 17:21:31

标签: elasticsearch

以前我使用的是ES 1.5,所以我可以很容易地创建数百个层次映射,如下所示:

{
  "mapping": {
    "country.*.population": {
      "type": "int"
    }
  }
}

这意味着在父类型国家/地区有数百个类型为int的国家/地区。

现在因为ES2.0不支持字段名中的点,所以在创建映射时我必须写入数百次映射。例如:

{
  "country": {
    "properties": {
      "usa": {
        "properties": {
          "population": {
            "type": "int"
          }
        }
      },
      "canada": {
        "properties": {
          "population": {
            "type": "int"
          }
        }
      }
    }
  }
}

有关于此的任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以在映射中使用dynamic template,如下所示:

PUT index
{
  "mappings": {
    "type": {
      "dynamic_templates": [
        {
          "countries": {
            "path_match":   "country.*.population",
            "mapping": {
              "type":       "int"
            }
          }
        }
      ]
    }
  }
}