Elasticsearch-Mapping(映射)

Elasticsearch-Mapping(映射)

Mapping是用来定义一个文档(document),以及它所包含的属性(field)是如何存储和

索引的。

  • 哪些字符串属性应该被看做全文本属性(fulltextfields)。

  • 哪些属性包含数字,日期或者地理位置。

  • 文档中的所有属性是否都能被索引(_all配置)。

  • 日期的格式。

  • 自定义映射规则来执行动态添加属性。

https://www.elastic.co/guide/en/elasticsearch/reference/7.11/mapping.html

一、字段类型

大概有如下字段类型

响应结果

二、映射

1、查看索引的Mapping映射

GET bank/_mapping

2、创建映射

PUT /my_index
{
  "mappings": {
    "properties": {
      "age":{"type":"integer"},
      "email":{"type":"keyword"},
      "name":{"type":"text"}
    }
  }
}
#创建索引并且指定映射,因为在Elastic中废除了type的概念,所以没有指定Type。在Elastic简介中讲了为什么废除Type

Elastic简介

3、添加新的字段映射

PUT my_index/_mapping
{
 "properties":{
   "employee-id":{
     "type":"keyword",
     "index":false
   }
 }
}
#注 "index":false,意思是说该字段不被检索,默认是true

4、更新映射

对于已经存在的映射字段,我们不能更新。更新必须创建新的正确的索引,然后在进行数据迁移

https://www.elastic.co/guide/en/elasticsearch/reference/7.x/explicit-mapping.html#update-mapping

5、数据迁移

POST _reindex
{
  "source": {
    "index": "my-index-000001"
  },
  "dest": {
    "index": "my-new-index-000001"
  }
}

因为Elastic在7.X之后去掉了Type,可以这样进行迁移

POST reindex 
{
  "source":{
      "index":"twitter",
      "type":"twt"
   },
  "dest":{
      "index":"new_twitters"
   }
}
posted @ 2021-08-12 15:38  coffee_baby  阅读(369)  评论(0编辑  收藏  举报