1.在ElasticSearch中什么是mapping,mapping是干嘛的?
-
Mapping 类似数据库中的schema的定义,作用如下
-
定义索引中的字段的名称
-
定义字段的数据类型, 例如字符串,数字,布.....
字段类型 -
字段,倒排索引的相关配置,(Analyzed or Not Analyzed,Analyzer)
-
-
Mapping会把JSON文档映射成Lucene所需要的扁平格式
-
一个Mapping属于一个索引的Type
-
每个文档都属于一一个Type
-
一个 Type有一个Mapping定义
-
7.0开始,不需要在Mapping定义中指定type信息
-
dynamic 属性 |
true | false | strict |
---|---|---|---|
文档可被索引 | YES | YES | NO |
字段可索引 | YES | NO | NO |
mapping可更新 | YES | NO | NO |
2.自定义一个索引的mapping
创建索引.png
PUT xianglin_member
{
"mappings": {
"properties": {
"first_name":{
"type":"keyword"
},
"last_name":{
"type":"keyword",
"index": false
},
"age":{
"type":"keyword",
"null_value": "NULL"
}
},
"dynamic":true
}
}
执行结果.png
- 修改索引的
dynamic
属性
修改索引的dynamic属性.png
执行GET xianglin_member/_mapping
可以看到结果、dynamic
的值是被改了的
- 为已存在的es索引新增字段
u_id
PUT xianglin_member/_mapping
{
"properties": {
"u_id":{
"type":"integer",
"index":true
}
}
}
update_mapping.png
网友评论