基本的数据类型
索引各字段的数据类型可以在初始化索引的时候进行通过mapping进行定义,若不定义则当首次在索引中插入数据的时候会根据数据自动为字段赋予数据类型(不建议这么做,因为某些场景需要特定的数据类型)
1.String 类型
包括text和keyword
text
: 非结构化的字符串,比如短信内容,通知公告等,这类数据插入是户通过默认的分词器进行分词,这样对这些字段进行查询时会并非直等查询,是分词模式查询,查询结果会显示相关性,并且默认text类型的字段是不能分组及排序的,如需要则需要开启该字段的fielddata=true,但是这样耗费大量的内存,不建议这么使用
设置数据类型为text
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"full_name": {
"type": "text"
}
}
}
}
}
#full_name为要设置的字段
设置fielddata=true
PUT megacorp/_mapping/employee/
{
"properties": {
"interests": {
"type": "text",
"fielddata": true
}
}
}
#interests为要修改的字段
keyword
: 结构化的字符,例如手机号之类的。该字段的查询是直等查询不经过分词,默认可分组及排序。
设置数据类型为keyword
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"apId": {
"type": "keyword"
}
}
}
}
}
#full_name为要设置的字段
注:针对字符串类型的数据在索引初始化时要明确设置数据类型
2.number (官方文档)
有long, integer, short, byte, double, float, half_float, scaled_float几种类型
-
long
-263~263-1的64位整数 -
integer
-231~231-1的32位整数 -
short
-32,768~32,767的16位整数 -
byte
-128~127的8位整数 -
double
,float
,half_float
,scaled_float
等
3.时间类型
date
: es支持时间类型
可设置多种时间格式
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}
}
}
}
}
4.Boolean
boolean
False values: false, "false", "off", "no", "0", "" (empty string), 0, 0.0
True values:其他值
网友评论