elasticsearch
映射相当于mysql中的字段的类型。
映射类型
String类型
text
:可分词,不可参与聚合
keyword
:不可分词,数据会作为完整字段进行匹配,可以参与聚合
Numerical数值类型
基本数据类型:long
、interger
、short
、byte
、double
、float
、half_float
浮点数的高精度类型:scaled_float
需要指定一个精度因子,比如10或100。elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
Date日期类型
Elasticsearch
可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。
空间索引类型
geo_point
:地理信息点类型
geo_shape
:地理信息多点,线、面等类型
创建映射
以创建一个poi的索引类型为例,通过Restful方式创建:
代码语言:javascript复制PUT /poi/_mapping
{
"properties" : {
"id" : {
"type" : "long"
},
"category" : {
"type" : "keyword"
},
"name" : {
"type" : "text"
},
"address" : {
"type" : "text",
"index": true,
"analyzer": "ik_max_word", //指定分词
"search_analyzer": "ik_smart" //指定搜索分词
},
"location" : {
"type" : "geo_point"
},
"remark" : {
"type" : "text",
"index" : false
},
"create_time" : {
"type" : "long"
}
}
}
当然也可以在创建索引的同时指定映射:
代码语言:javascript复制PUT /aoi
{
"settings":{
},
"mappings":{
"properties" : {}
}
}
查看映射
通过Restful方式查看映射结果
代码语言:javascript复制GET /poi/_mapping