ElasticSearch中的date型別

2021-09-26 22:15:40 字數 2495 閱讀 4384

1.1 date 資料型別

elasticsearch 資料是以json格式儲存的,而json中是並沒有date資料型別,因此 elasticsearch 中雖然有date型別,但在展示時卻要轉化成另外的格式。

date型別在 elasticsearch 展示的格式有下面幾種:

utc

utc(universal time coordinated)叫做世界統一時間,中國大陸和utc的時差是+ 8,也就是utc+8

不論 date 是什麼展示格式,在 elasticsearch 內部儲存時都是轉換成 utc,並且把時區也會計算進去,從而得到 milliseconds-since-the-epoch 並作為儲存的格式。

日期查詢

在es內部,date被轉為utc,並被儲存為乙個長整型數字,代表從2023年1月1號0點到現在的毫秒數

date型別欄位上的查詢會在內部被轉為對long型值的範圍查詢,查詢的結果型別是字串。

在查詢日期時,會執行下面的過程:

date的預設格式

strict_date_optional_timedate_optional_time的嚴格級別,這個嚴格指的是年份、月份、天必須分別以4位、2位、2位表示,不足兩位的話第一位需用0補齊。不滿足這個格式的日期字串是放不進es中的。

date-opt-time = date-element ['t' [time-element] [offset]]

date-element = std-date-element | ord-date-element | week-date-element

std-date-element = yyyy ['-' mm ['-' dd]]

ord-date-element = yyyy ['-' ddd]

week-date-element = ***x '-w' ww ['-' e]

time-element = hh [minute-element] | [fraction]

minute-element = ':' mm [second-element] | [fraction]

second-element = ':' ss [fraction]

fraction = ('.' | ',') digit+

實測,僅支援如下格式:

不支援常用的"yyyy-mm-dd hh:mm:ss"等格式。

注意:

t「和」z「是固定的字元,在獲取」yyyy-mm-ddthh:mm:ss」、"yyyy-mm-ddthh:mm:ss.sss"、"yyyy-mm-ddthh:mm:ss.sssz"格式字串值時,不能直接以前面格式格式化date,而是需要多次格式化date並且拼接得到。

epoch_millis約束值必須大於等於long.min_value,小於等於long.max_value

date型別字段除了type引數必須指定為date外,還有乙個常用的引數format。可以通過該引數來顯式指定es接受的date格式,如果有多個的話,多個date格式需用||分隔。之後index/create/update操作時,將依次匹配,如果匹配到合適的格式,則會操作成功,並且查詢時,該文件該字段也會以該格式展示。否則,操作不成功。如

put my_index}}

}}

建立索引時指定date型別format為"yyyy-mm-dd hh:mm:ss",限制只能接受"yyyy-mm-dd hh:mm:ss"格式的date字串

在**中把date例項或者localdatetime例項先轉化為 "yyyy-mm-dd hh:mm:ss「格式的字串後再存進去,這樣取出來時也是」yyyy-mm-dd hh:mm:ss"格式。

elasticsearch中的mapping簡介

elasticsearch 以下簡稱es 是沒有模式 schema 的,當我們執行以下命令 filter的功能很容易理解 乙個filter就是乙個轉換資料的方法,輸入乙個字串,這個方法返回另乙個字串,比如乙個將字串轉為小寫的方法就是乙個filter很好的例子。乙個analyzer由一組順序排列的fi...

elasticsearch中rollover的用法

滾動索引一般可以與索引模板結合使用,實現按一定條件自動建立索引。設定rollover之後,滿足條件後,會自動新建索引,將索引別名轉向新索引。當現有的索引太久或者太大時,往往使用rollover index建立新索引。新建索引模板,模板內容如下 put template mytemplate type...

Elasticsearch中Head外掛程式的使用

在學習elasticsearch的過程中,必不可少需要通過一些工具檢視es的執行狀態以及資料。如果都是通過rest請求,未免太過麻煩,而且也不夠人性化。此時,head可以完美的幫助你快速學習和使用elasticsearch。elasticsearch集群搭建請參考前一篇文章 系統節點名ip 軟體版本...