elasticsearch 7.8.X 數據類型與使用規范


1 核心數據類型

  • string 字符串
字符類型 說明
text ⽤於全⽂索引,搜索時會自動使用分詞器進⾏分詞再匹配。字段內容會被分析,在生成倒排索引以前,字符串會被分析器分成一個一個詞項
keyword 不分詞,搜索時需要匹配完整的值
  • numberic 數值
整數類型 說明 (1byte(字節)=8bit(位、比特))
byte (1字節)-128 到127(- 2^7 到 2^7– 1)
short (2字節)-32,768到32,767 (- 2^15 到 2^15– 1)
integer (4字節)-2,147,483,648到2,147,483,647 (- 2^31 到 2^31– 1)
long (8字節)(- 2^63 到 2^63– 1)
浮點類型 說明
float 32位單精度IEEE 754浮點類型
double 64位雙精度IEEE 754浮點類型
half_float 16位半精度IEEE 754浮點類型
scaled_float 縮放類型的的浮點數(比如價格只需要精確到分,price為57.34的字段縮放因子為100,存起來就是5734)
  • date 日期
日期類型 說明
date  
JSON中沒有日期類型,所以在ELasticsearch中,日期類型可以是以下幾種:
日期格式的字符串:e.g. “2015-01-01” or “2015/01/01 12:10:30”.
long類型的毫秒數( milliseconds-since-the-epoch)
integer的秒數(seconds-since-the-epoch)
  • 1
  • 2
  • 3
  • 4
  • date nanoseconds 日期納秒
日期納秒類型 說明
date_nanos  
  • boolean 布爾
布爾類型 說明
boolean true/false
  • binary 二進制
二進制類型 說明
binary 該binary類型接受二進制值作為 Base64編碼的字符串
  • range 范圍
范圍類型 說明
integer_range 一個帶符號的32位整數范圍,最小值為,最大值為。 -2^31到 2^31-1
float_range 一系列單精度32位IEEE 754浮點值
long_range 一系列帶符號的64位整數,最小值為,最大值為。 -2^63 到 2^63-1
double_range 一系列雙精度64位IEEE 754浮點值
date_range 自系統時代以來經過的一系列日期值,表示為無符號的64位整數毫秒
ip_range 支持IPv4或 IPv6(或混合)地址的一系列ip值

2 復雜數據類型

  • object 對象
對象類型 說明
object 對象,用於單個JSON對象
  • nested 嵌套
對象類型 說明
array 嵌套JSON對象數組

3 地理數據類型

  • Geo-point 地理位置數據(緯度-經度)
地理位置數據類型 說明
geo_point geo_point為緯度/經度點
  • Geo-shape 地理形狀數據類型
地理形狀數據類型 說明
geo_shape geo_shape映射將geo_json幾何對象映射到geo_shape類型,用於多邊形等復雜形狀

4 專用的數據類型

專用的數據類型 說明
ip ip用於IPv4和IPv6地址
Completion data type 提供自動完成建議
Token count 計算字符串中令牌的數量
mapper-murmur3 在索引時計算值的哈希並將其存儲在索引中
mapper-annotated-text annotated-text 索引包含特殊標記的文本(通常用於標識命名實體)
Percolator 接受來自query-dsl的查詢
Join 為同一索引內的文檔定義父/子關系
Rank feature 記錄數字功能以提高查詢時的點擊率
Rank features 記錄數字功能以提高查詢時的點擊率
Dense vector 記錄浮點值的密集向量
Sparse vector 記錄浮點值的稀疏向量
Search-as-you-type 針對查詢進行優化的類文本字段,以實現按需輸入完成
Alias 為現有字段定義別名。
Flattened Allows an entire JSON object to be indexed as a single field
Shape shape 對於任意笛卡爾幾何
Histogram histogram 用於百分位數聚合的預聚合數值。
Constant keyword keyword當所有文檔具有相同值時的情況的 專業化。

5 數組

在Elasticsearch中,數組不需要專用的字段數據類型。默認情況下,任何字段都可以包含零個或多個值,但是,數組中的所有值都必須具有相同的數據類型。請參閱數組

6 多領域

為不同的目的以不同的方式對同一字段建立索引通常很有用。例如,一個string字段可以映射為text用於全文搜索的字段,也可以映射為keyword用於排序或聚合的字段。或者,您可以使用standard分析儀english分析儀french分析儀索引文本字段。

這是多領域的目的。大多數數據類型通過fields參數支持多字段。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM