映射(Mapping)相当于数据表的表结构。ES中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等等。ElasticSearch中不需要事先定义映射(Mapping),文档写入ElasticSearch时,会根据文档字段自动识别类型,这种机制称之为动态映射,反之就是静态映射了。动态映射的自动类型推测功能并不是100%正确的,这就需要静态映射机制。

# 查看
GET /book/_mapping
//返回
{
  "book": {
    "mappings": {}
  }
}

新建映射

PUT books
{
  "mappings":{
    "it": {
       "properties": {
          "bookId": {"type": "long"},
          "bookName": {"type": "text"},
          "publishDate": {"type": "date"}
       }
    }
  }
}

//返回
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "books"
}
//反查mapping
GET books/_mapping
//返回
{
  "books" : {
    "mappings" : {
      "it" : {
        "properties" : {
          "bookId" : {
            "type" : "long"
          },
          "bookName" : {
            "type" : "text"
          },
          "publishDate" : {
            "type" : "date"
          }
        }
      }
    }
  }
}