Appearance
- 请求方式依然是PUT
- PUT /索引库名/_mapping/类型名称
类型名称:就是前面讲的type概念,类似于数据库中的不同表字段名:任意填写,可以指定许多属性,例如:
type:类型,可以是text,long,short,date,integer,object等,其中text类型为可分词的类型,keyword类型不能分词。
index:是否索引,默认为true
store:是否存储,默认为false
analyzer:分词器,这里的ik_max_word即使用ik分词器
- 查询映射
- GET /索引库名/_mapping/索引名(不加为查询所有索引)
- 如:
- GET /heima4/_mapping
数据类型: string: text and keyword,区别在于text可分词,而keyword不可分词 Numeric: byte,short,integer,long,float,double,half_float,scaled_float Date: date Boolean: boolean Binary: binary Range: integer_range,float_range,long_range,double_range,date_range没有byte和short的range。
复杂类型: 支持数组,对象和各种数据的嵌套类型 如果存的是对象,比如:{girl:{name:"rose",age:21}} 会处理成两个字段:girl.name和girl.age
index index影响字段的索引情况
true:字段会被索引,则可以用来进行搜索,默认值就是true
false:字段不会被索引,不能用来搜索
index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。 但是有些字段是我们不希望被索引的,比如商品的图片信息,就需要手动设置index为false。
store 是否将数据进行额外存储 在学习solar时,我们知道如果一个字段的store设置为false,那么在文档列表中就不会有这个字段的值,用户的搜索结果中不会显示出来。 但是在ES中,既然设置为false,也可以搜索到结果。 原因是ES在创建文档索引时,会将文档中的原始数据备份,保存到一个叫做_source的属性中,而且我们可以通过过滤_souce来选择哪些要显示,哪些不显示。 而如果设置store为true,就会在_source以外额外存储一份数据,多余。因此一般我们都会将store设置为false,事实上,store的默认值就是false。
boast激励因子
