Elasticsearch-日期類型


Elasticsearch-日期類型

date類型用於存儲日期和時間。它是這樣運作的:通常提供一個表示日期的字符串,例如2019-06-25T22:47。然后,ES解析這個字符串,然后將其作為long的數值存入Lucene的索引。該long型數值是從1970年1月1日00:00:00 UTC(UNIX紀元)到所提供的時間之間已經過去的毫秒數。
當搜索文檔的時候,仍然提供date的字符串,在后台ES將這些字符串解析並按照數值來處理。這樣做的原因是和字符串相比,數值在存儲和處理時更快。
date字符串的數據格式是通過format選項來定義的,ES默認解析ISO 8601的時間戳。
ISO8601是一種交流日期和時間相關數據的國際標准,由於RFC 3339而廣泛運用於時間戳。ISO 8601日期張下邊這樣:

2019-06-25T22:5145.453-0300

包含了亞秒和時區。


使用format選項來指定日期格式的時候,有以下兩種選擇
(1) 使用預定義的時間格式。例如,date格式解析2019-06-25這樣的日期。
(2) 設置自己定制的格式。可以指定時間戳所遵循的模式。例如,指定MMMYYYY來解析 jun 2019這樣的日期。 

使用定制的時間格式

定制版:’MMM DD YYYY’
在索引music的album類型下,添加新的屬性映射,類型為date,format自定義

curl -XPUT 'localhost:9200/music/_mapping/album' -d '{
    "album":{
        "properties":{
            "format_date":{
                "type":"date",
                "format":"MMM DD YYYY"
            }
        }
    }
}'

 

新增一條數據

curl -XPUT 'localhost:9200/music/album/4' -d '{
"name":"十一月的肖邦",
"date":"2005-11-24T22:20",
"format_date":"Nov 24 2005"
}'

 


免責聲明!

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



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