乐趣区

Elasticsearch-参考指南Put-Mapping

Put Mapping

PUT mapping API 允许你向现有索引添加字段,或者仅更改现有字段的搜索设置。

PUT twitter 
{}

PUT twitter/_mapping 
{
  "properties": {
    "email": {"type": "keyword"}
  }
}
  • 创建一个名为 twitter 的索引,不需要任何映射。
  • 使用 PUT mapping API 添加一个名为email 的新字段。

有关如何定义映射的更多信息可以在映射部分中找到。

在 7.0.0 之前,映射定义用于包含类型名称,虽然现在不赞成在请求中指定类型,但是如果设置了请求参数include_type_name,仍然可以提供类型,有关详细信息,请参见删除映射类型。

多索引

PUT mapping API 可以应用于单个请求的多个索引,例如,我们可以同时更新 twitter-1twitter-2的映射:

# Create the two indices
PUT twitter-1
PUT twitter-2

# Update both mappings
PUT /twitter-1,twitter-2/_mapping 
{
  "properties": {
    "user_name": {"type": "text"}
  }
}
  • 注意,指定的索引(twitter-1,twitter-2)遵循多索引名称和通配符格式。

更新字段映射

通常,无法更新现有字段的映射,这条规则有一些例外,例如:

  • 可以向对象字段添加新properties
  • 可以向现有字段添加新的多字段。
  • 可以更新 ignore_above 参数。

示例:

PUT my_index 
{
  "mappings": {
    "properties": {
      "name": {
        "properties": {
          "first": {"type": "text"}
        }
      },
      "user_id": {"type": "keyword"}
    }
  }
}

PUT my_index/_mapping
{
  "properties": {
    "name": {
      "properties": {
        "last": {"type": "text"}
      }
    },
    "user_id": {
      "type": "keyword",
      "ignore_above": 100 
    }
  }
}
  • 创建一个索引,其中 name 对象字段下有 first 字段,user_id字段。
  • name 对象字段下添加 last 字段。
  • 从默认值 0 更新 ignore_above 设置。

每个映射参数指定是否可以在现有字段上更新其设置。


退出移动版