基本的數(shù)據(jù)類型
索引各字段的數(shù)據(jù)類型可以在初始化索引的時候進(jìn)行通過mapping進(jìn)行定義,若不定義則當(dāng)首次在索引中插入數(shù)據(jù)的時候會根據(jù)數(shù)據(jù)自動為字段賦予數(shù)據(jù)類型(不建議這么做,因為某些場景需要特定的數(shù)據(jù)類型)
1.String 類型
包括text和keyword
text
: 非結(jié)構(gòu)化的字符串迄本,比如短信內(nèi)容亭饵,通知公告等妥箕,這類數(shù)據(jù)插入是戶通過默認(rèn)的分詞器進(jìn)行分詞抒寂,這樣對這些字段進(jìn)行查詢時會并非直等查詢洪灯,是分詞模式查詢隔心,查詢結(jié)果會顯示相關(guān)性白群,并且默認(rèn)text類型的字段是不能分組及排序的,如需要則需要開啟該字段的fielddata=true,但是這樣耗費大量的內(nèi)存硬霍,不建議這么使用
設(shè)置數(shù)據(jù)類型為text
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"full_name": {
"type": "text"
}
}
}
}
}
#full_name為要設(shè)置的字段
設(shè)置fielddata=true
PUT megacorp/_mapping/employee/
{
"properties": {
"interests": {
"type": "text",
"fielddata": true
}
}
}
#interests為要修改的字段
keyword
: 結(jié)構(gòu)化的字符帜慢,例如手機號之類的。該字段的查詢是直等查詢不經(jīng)過分詞唯卖,默認(rèn)可分組及排序粱玲。
設(shè)置數(shù)據(jù)類型為keyword
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"apId": {
"type": "keyword"
}
}
}
}
}
#full_name為要設(shè)置的字段
注:針對字符串類型的數(shù)據(jù)在索引初始化時要明確設(shè)置數(shù)據(jù)類型
2.number (官方文檔)
有l(wèi)ong, integer, short, byte, double, float, half_float, scaled_float幾種類型
-
long
-263~263-1的64位整數(shù) -
integer
-231~231-1的32位整數(shù) -
short
-32,768~32,767的16位整數(shù) -
byte
-128~127的8位整數(shù) -
double
,float
,half_float
,scaled_float
等
3.時間類型
date
: es支持時間類型
可設(shè)置多種時間格式
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:其他值