上一章学习了Es的文档操作,ElasticSerach-文档操作,本章我们来学习索引中映射的操作
1、创建映射
- 可以在创建索引的时候就创建,可以参考一、ElsaticSerach-索引操作
- 创建索引的时候没有添加映射,可以后面添加
######创建索引
#创建索引
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" } } } } }