mapping是对索引库文档的约束,常见的mapping属性包括
type:字段数据类型,常见的简单类型有:
字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
数值:long、integer、short、byte、double、float
布尔:boolean
日期:date
对象:object
index:是否创建索引,默认为true
analyzer:使用哪种分词器
properties:该字段的子字段
#创建索引库
PUT /heima
{
"mappings": {
"properties": {
"info":{
"type":"text",
"analyzer": "ik_smart"
},
"email":{
"type":"keyword",
"index": false
},
"name":{
"type": "object", #类型是object
"properties": {
"firstName":{
"type":"keyword"
},
"lastName":{
"type": "keyword"
}
}
}
}
}
}
查看索引库:
GET /索引库名
删除索引库:
DELETE /索引库名
索引库和mapping一旦创建无法修改,但是可以添加新的字段:
PUT /索引库名/_mapping
{
"properties":{
"新字段名":{
type:"text"
}
}
}
实例:
#修改
PUT /heima/_mapping
{
"properties":{
"age":{
"type":"long"
}
}
}
reindex会将一个索引的快照数据copy到另一个索引,默认情况下存在相同的_id会进行覆盖(一般不会发生,除非是将两个索引的数据copy到一个索引中),可以使用以下命令将索引快照进行copy:
POST _reindex
{
"source": {
"index": "my_index_name"
},
"dest": {
"index": "my_index_name_new"
}
}