三、ElasticSerach-映射操作
上一章学习了Es的文档操作,,本章我们来学习索引中映射的操作
1、创建映射
-
可以在创建索引的时候就创建,可以参考 创建索引的时候没有添加映射,可以后面添加
######创建索引
#创建索引 PUT /my_index_mapping #查看索引 get /my_index_mapping #查看索引结果 { "my_index_mapping" : { "aliases" : { }, "mappings" : { },#没有添加映射的时候,mappings没有相应的映射 "settings" : { "index" : { "creation_date" : "1650800495453", "number_of_shards" : "1", "number_of_replicas" : "1", "uuid" : "pBmFJEmAQMWmnYBUbE6vBg", "version" : { "created" : "7080099" }, "provided_name" : "my_index_mapping" } } } }
######新增映射
#新增映射 POST /my_index_mapping/_mapping { "properties" : { "id" : {"type":"integer"}, "first_name" : {"type":"text"}, "last_name" : {"type":"text"}, "age" : {"type":"integer"}, "about" : {"type":"text"}, "interests" : {"type":"text"} } } #再次查看索引结果为 { "my_index_mapping" : { "aliases" : { }, "mappings" : { "properties" : { "about" : { "type" : "text" }, "age" : { "type" : "integer" }, "first_name" : { "type" : "text" }, "id" : { "type" : "integer" }, "interests" : { "type" : "text" }, "last_name" : { "type" : "text" } } }, "settings" : { "index" : { "creation_date" : "1650799809497", "number_of_shards" : "1", "number_of_replicas" : "1", "uuid" : "cH4nc2PEQSKv5kxDV3REIw", "version" : { "created" : "7080099" }, "provided_name" : "my_index_mapping" } } } }
######映射数据说明
-
字段名:任意填写,下面指定许多属性,例如:title、subtitle、images、price type :类型, Elasticsearch 中支持的数据类型非常丰富
- String 类型,又分两种:text:可分词,keyword :不可分词,数据会作为完整字段进行匹配
- Numerical:数值类型,分两类 基本数据类型: long 、 integer 、 short 、 byte 、 double 、 float 、 half_float 浮点数的高精度类型: scaled_float
- Data:日期类型
- Array:数组类型
- Object:对象
-
index :是否索引,默认为 true ,也就是说你不进行任何配置,所有字段都会被索引。
- true :字段会被索引,则可以用来进行搜索
- false :字段不会被索引,不能用来搜索
-
store :是否将数据进行独立存储,默认为 false 原始的文本会存储在_source 里面,默认情况下其他提取出来的字段都不是独立存储 的,是从 _source 里面提取出来的。当然你也可以独立的存储某个字段,只要设置 "store": true 即可,获取独立存储的字段要比从 _source 中解析快得多,但是也会占用 更多的空间,所以要根据实际业务需求来设置。 2、查看映射 #查看映射 get /my_index_mapping/_mapping { "my_index_mapping" : { "mappings" : { "properties" : { "about" : { "type" : "text" }, "age" : { "type" : "integer" }, "first_name" : { "type" : "text" }, "id" : { "type" : "integer" }, "interests" : { "type" : "text" }, "last_name" : { "type" : "text" } } } } }