mapping类似于数据库中的schema,作用如下:
1. 定义索引中的字段类型;
2. 定义字段的数据类型,例如:布尔、字符串、数字、日期.....
3. 字段倒排索引的设置
mapping定义设置
##获取索引 GET /_cat/indices ##设置索引mapping PUT users { "mappings": { // define your mappings here } }
定义mapping的建议方式: 写入一个样本文档到临时索引中,ES会自动生成mapping信息,通过访问
mapping信息的api查询mapping的定义,修改自动生成的mapping成为我们需要方式,创建索引,删
除临时索引,简而言之就是 “卸磨杀驴”
mapping索引创建后不能修改,所以设置后,如果有变化,通常都是删除从新创建,
设置时,一定要设置好mapping,尽量不要对mapping进行改变
例如:
{ "mappings" : { "properties" : { "age" : { "type" : "long" }, "height" : { "type" : "long" }, "isRich" : { "type" : "boolean" }, "name" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } } } } } }
keyword
字符串, Keyword的意思是字符串的内容不会被分词处理,输入是什么内容,存储在ES中就是什么内容。Text类型ES会自动的添加一个Keyword类型的子字段