Elasticsearch 動態對映 自動檢測

2021-09-29 19:34:53 字數 1589 閱讀 9812

es中有乙個非常重要的特性——動態對映,即索引文件前不需要建立索引、型別等資訊,在索引的同時會自動完成索引、型別、對映的建立。

那麼什麼是對映呢?對映就是描述欄位的型別、如何進行分析、如何進行索引等內容。

本篇就著重講述下,es中對映的自動檢測特性。

在某個字段第一次出現時,如果之前沒有定義過對映,es會自動檢測它可能滿足的型別,然後建立對應的對映。

json資料

es中的資料型別

null

不會新增字段

trueorfalse

boolean

floating point number

double

integer

long

object

object

array

依賴於第乙個非null得值

string

如果通過了date檢測,則為date

如果通過了numeric檢測,則為number

上面就是型別自動檢測的結果,除了上面列出的基本型別,其他的高階的型別比如geo,ip就需要手動指定了。

日期自動檢測,即date_detection是預設開啟的,因此只要符合預設的日期格式,就可以自動建立成date型別

日期的格式為:

[ "

strict_date_optional_time

","yyyy/mm/dd hh:mm:ss z||yyyy/mm/dd z

"]

例如:

$ curl -xput localhost:9200/test/test/1 -d '

' }}}

}}

可以通過修改dynamic_date_formats修改日期格式:

put my_index}}

put my_index/my_type/1

數字自動檢測,即numeric_detection預設是關閉的。因此需要手動開啟:

put my_index

}}

當執行索引操作時,如果符合float型,就會自動建立為float

long型也是一樣:

elasticsearch 動態對映

來確定欄位的資料型別並自動把新的字段新增到型別對映。有時這是想要的行為有時又不希望這樣。通常沒有人知道以後會有什麼新字段加到文件,但是又希望這些欄位被自動的索引。也許你只想忽略它們。如果elasticsearch是作為重要的資料儲存,可能就會期望遇到新字段就會丟擲異常,這樣能及時發現問題。幸運的是可...

elasticsearch 動態模板

引數 path match path unmatch相反 引數用於匹配物件中字段的完整路徑,比如address.name可以匹配如下字段 curl xput localhost 9200 my index d 新增資料 curl xpost localhost 9200 my index my ty...

elasticsearch 動態對映

put my index stash 如果遇到新字段,物件 my type 就會丟擲異常。而內部物件 stash 遇到新字段就會動態建立新字段。使用上述動態對映,你可以給 stash 物件新增新的可檢索的字段 put my index my type 1 但是對根節點物件 my type 進行同樣的...