显式映射

edit

您比Elasticsearch更了解您的数据,因此虽然动态映射对于开始使用可能很有用,但在某些时候您会希望指定自己的显式映射。

您可以在创建索引时以及向现有索引添加字段时创建字段映射。

创建带有显式映射的索引

edit

您可以使用创建索引 API 来创建一个具有显式映射的新索引。

PUT /my-index-000001
{
  "mappings": {
    "properties": {
      "age":    { "type": "integer" },  
      "email":  { "type": "keyword"  }, 
      "name":   { "type": "text"  }     
    }
  }
}

创建 age,一个 integer 字段

创建 email,一个 keyword 字段

创建 name,一个 text 字段

向现有映射添加字段

edit

您可以使用更新映射 API 向现有索引添加一个或多个新字段。

以下示例添加了 employee-id,这是一个 keyword 字段,并带有 index 映射参数值为 false。这意味着 employee-id 字段的值会被存储,但不会被索引或用于搜索。

PUT /my-index-000001/_mapping
{
  "properties": {
    "employee-id": {
      "type": "keyword",
      "index": false
    }
  }
}

更新字段的映射

edit

除了支持的映射参数, 您不能更改现有字段的映射或字段类型。 更改现有字段可能会使已索引的数据无效。

如果您需要更改数据流支持索引中某个字段的映射,请参阅更改数据流的映射和设置

如果您需要更改其他索引中字段的映射, 请创建一个具有正确映射的新索引 并将您的数据重新索引到该索引中。

重命名一个字段会使已经使用旧字段名称索引的数据失效。 相反,添加一个alias字段来创建一个备用字段名称。

查看索引的映射

edit

您可以使用获取映射 API 来查看现有索引的映射。

GET /my-index-000001/_mapping

API返回以下响应:

{
  "my-index-000001" : {
    "mappings" : {
      "properties" : {
        "age" : {
          "type" : "integer"
        },
        "email" : {
          "type" : "keyword"
        },
        "employee-id" : {
          "type" : "keyword",
          "index" : false
        },
        "name" : {
          "type" : "text"
        }
      }
    }
  }
}

查看特定字段的映射

edit

如果您只想查看一个或多个特定字段的映射,您可以使用获取字段映射 API。

如果你不需要索引的完整映射,或者你的索引包含大量字段,这会很有用。

以下请求检索employee-id字段的映射。

GET /my-index-000001/_mapping/field/employee-id

API返回以下响应:

{
  "my-index-000001" : {
    "mappings" : {
      "employee-id" : {
        "full_name" : "employee-id",
        "mapping" : {
          "employee-id" : {
            "type" : "keyword",
            "index" : false
          }
        }
      }
    }
  }
}