es 資料型別

2021-10-24 19:27:56 字數 2640 閱讀 3849

es6中,string型別已經被廢棄了,需要使用text、keyword型別來代替。

1)text型別:

當乙個字段需要用於全文搜尋(會被分詞),比如產品名稱、產品描述資訊, 就應該使用text型別。該型別欄位會通過分析器轉成terms list,然後存入索引。該型別欄位不用於排序、聚合操作。}}

}}'

2)keyword型別:

當乙個字段需要按照精確值進行過濾、排序、聚合等操作時, 就應該使用keyword型別。該型別的字段值不會被分析器處理(分詞)}}

}}'型別

說明byte

有符號的8位整數, 範圍: [-128 ~ 127]

short

有符號的16位整數, 範圍: [-32768 ~ 32767]

integer

有符號的32位整數, 範圍: [−231−231 ~ 231231-1]

long

有符號的64位整數, 範圍: [−263−263 ~ 263263-1]

float

32位單精度浮點數

double

64位雙精度浮點數

half_float

16位半精度ieee 754浮點型別

scaled_float

縮放型別的的浮點數, 比如price欄位只需精確到分, 57.34縮放因子為100, 儲存結果為5734

盡可能選擇範圍小的資料型別, 欄位的長度越短, 索引和搜尋的效率越高。示例:

, "time_in_seconds": ,

"price": }}

}}'1)boolean型別:

可以使用boolean型別的(true、false)也可以使用string型別的(「true」、「false」)。}}

}}'#插入

'#查詢

}}'

2)binary型別:

二進位制型別是base64編碼字串的二進位制值,不以預設的方式儲存,且不能被搜尋。

#新增對映

put website

// 二進位制}}

}}#新增資料

put website/blog/1

json沒有日期資料型別, 所以在es中, 日期可以是:

1)使用format指定格式:

若未指定格式,則使用預設格式: strict_date_optional_time||epoch_millis}}

}}''

'' }

' 2)指定多個format:

使用雙豎線||分隔指定多種日期格式,每個格式都會被依次嘗試,直到找到匹配的。}}

}}'

型別範圍

integer_range

−231−231 ~ 231−1231−1

long_range

−263−263 ~ 263−1263−1

float_range

32位單精度浮點型

double_range

64位雙精度浮點型

date_range

64位整數, 毫秒計時

ip_range

ip值的範圍, 支援ipv4和ipv6, 或者這兩種同時存在

#新增對映

put company

, "time_frame": }}

}}#插入資料

put company/department/1

, "time_frame" :

}#查詢

get company/department/_search}}

}get company/department/_search}}

}#查詢結果

, "hits": ,

"time_frame": ,

"ip_whitelist" : "192.168.0.0/16"}}

]}}

es支援複雜的資料型別,包括:object、array、nested。用的不是很多,舉個例項:

, "manager": ,

"name": ,

"last": }}

}}}}

}}'#插入資料

}}'

儲存方式:

geo point型別用於儲存地理位置的經緯度對,可用於:

put employee}}

}}# 方式一: 緯度 + 經度鍵值對

put employee/developer/1

}# 方式二: "緯度, 經度"的字串引數

put employee/developer/2

# 方式三: ["經度, 緯度"] 陣列地理點引數

put employee/developer/3

#查詢get employee/_search

, // 地理盒子模型的上-左邊

"bottom_right": // 地理盒子模型的下-右邊}}

}}使用較少,可參考:

參考:

ES資料型別

陣列型別 沒有明顯的字段型別設定,任何乙個欄位的值,都可以被新增0個到多個,要求,他們的型別必須一致,當型別一直含有多個值儲存到es中會自動轉化成陣列型別 對於陣列型別的資料,是乙個陣列元素做乙個資料單元,如果是分詞的話也只是會依乙個陣列元素作為詞源進行分詞。不會是所有的陣列元素整合到一起。在查詢的...

ES6 Symbol資料型別

基本的資料型別 null undefined number boolean string symbol 引用資料型別 object let s1 symbol let s2 symbol console.log typeof s1 symbol console.log s1 s2 false1 sy...

ES6 Map資料型別

定義 map 物件儲存鍵值對。任何值 物件或者原始值 都可以作為乙個鍵或乙個值。語法 new map iterable 引數 iterable iterable 可以是乙個陣列或者其他 iterable 物件,其元素為鍵值對 兩個元素的陣列,例如 1,one 2,two 每個鍵值對都會新增到新的 m...