映射操作
索引库(index)中的映射,类似于数据库(database)中的表结构(table)。创建数据库表需要设置字段名称,类型,长度,约束等;索引库也一样,需要知道这个类型下有哪些字段,每个字段有哪些约束信息,这就叫做映射(mapping)。
创建映射
字段名:任意填写
type:类型,Elasticsearch中支持的数据类型非常丰富,说几个关键的:
String类型,又分两种:
text:可分词
keyword:不可分词,数据会作为完整字段进行匹配
Numerical:数值类型,分两类
基本数据类型:long、integer、short、byte、double、float、half_float
浮点数的高精度类型:scaled_float
Date:日期类型
Array:数组类型
Object:对象
index:是否索引,默认为true,所有字段都会被索引
true:字段会被索引,则可以用来进行搜索
false:字段不会被索引,不能用来搜索
store:是否将数据进行独立存储,默认为false
原始的文本会存储在_source里面,默认情况下其他提取出来的字段都不是独立存储的,是从_source里面提取出来的。当然也可以独立的存储某个字段,只要设置”store”: true即可,获取独立存储的字段要比从_source中解析快得多,但是也会占用更多的空间,所以要根据实际业务需求来设置。
analyzer:分词器,这里的ik_max_word即使用ik分词器
http://127.0.0.1:9200/user
Put http://127.0.0.1:9200/user/_mapping
{
"properties": {
"username": {
"type": "text",
"index": true
},
"sex": {
"type": "keyword",
"index": true
},
"age": {
"type": "long",
"index": false
}
}
}
查看映射
Get http://127.0.0.1:9200/user/_mapping
{
"user": {
"mappings": {
"properties": {
"age": {
"type": "long",
"index": false
},
"sex": {
"type": "keyword"
},
"username": {
"type": "text"
}
}
}
}
}
索引直接映射关联
Put http://127.0.0.1:9200/user1
{
"settings": {},
"mappings": {
"properties": {
"username": {
"type": "text",
"index": true
},
"sex": {
"type": "keyword",
"index": true
},
"age": {
"type": "long",
"index": false
}
}
}
}
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "user1"
}
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自耕田日记
评论