Meta中繼資料
- 身份中繼資料
- 索引中繼資料
- 文檔中繼資料
- 路由中繼資料
- 其他
PUT /idx_pro/
{
"settings": {
"index": {
"number_of_shards" : "2",
"number_of_replicas" : "0"
}
},
"mappings": {
"properties": {
"proId" : {
"type": "keyword",
"ignore_above": 64
},
"name" : {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart",
"fields": {
"keyword" : {"ignore_above" : 256, "type" : "keyword"}
}
},
"mytimestamp" : {
"type": "date",
"format": "epoch_millis"
},
"createTime" : {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
Meta | 說明 |
---|---|
_all | 自動組合所有的字段值,以空格分割,可以指定分器詞索引,但是整個值不被存儲,是以此字段僅僅能被搜尋,不能擷取到具體的值 |
_field_names | 索引了每個字段的名字,可以包含null值,可以通過exists查詢或missing查詢方法來校驗特定的字段 |
_id | 文檔的唯一辨別 |
_index | 文檔所屬索引 , 自動被索引,可被查詢,聚合,排序使用,或者腳本裡通路 |
_meta | |
_parent | |
_routing | |
_source | 一個doc的原生的json資料,不會被索引,用于擷取提取字段值 ,啟動此字段,索引體積會變大,如果既想使用此字段 |
_type | 文檔所屬類型,自動被索引,可被查詢,聚合,排序使用,或者腳本裡通路 |
_uid | 由_type和_id字段組成,自動被索引 ,可被查詢,聚合,排序使用,或者腳本裡通路 |
_timestamp | 可以手工指定時間戳值,也可以自動生成使用now()函數,除此之外還可以設定日期的格式化,忽略确實等功能 |
_ttl | 對于一些會話資料或者驗證碼失效時間,一般來說是有生命周期的,在es中可以很友善的通過這個ttl來設定存活時間,比如1小時,或者10分鐘,在逾時過後,這個doc會被自動删除,這種方式并不适合按周或按天删除曆史資料,如果是這種需求,可考慮使用索引級别的管理方式 |
_size | 整個_source字段的位元組數大小 |
身份中繼資料
_index
文檔所屬索引 , 自動被索引,可被查詢,聚合,排序使用,或者腳本裡通路
_type
文檔所屬類型,自動被索引,可被查詢,聚合,排序使用,或者腳本裡通路
_id
文檔的唯一辨別
索引中繼資料
_all
動組合所有的字段值,以空格分割,可以指定分器詞索引,
但是整個值不被存儲,是以此字段僅僅能被搜尋,不能擷取到具體的值
_field_names
索引了每個字段的名字,可以包含null值,可以通過exists查詢或missing查詢方法來校驗特定的字段
_timestamp
可以手工指定時間戳值,也可以自動生成使用now()函數,除此之外還可以設定日期的格式化,忽略确實等功能
_ttl
對于一些會話資料或者驗證碼失效時間,一般來說是有生命周期的,在es中可以很友善的通過這個ttl來設定存活時間,比如1小時,或者10分鐘,在逾時過後,這個doc會被自動删除,這種方式并不适合按周或按天删除曆史資料,如果是這種需求,可考慮使用索引級别的管理方式
文檔中繼資料
_source
一個doc的原生的json資料,不會被索引,用于擷取提取字段值 ,啟動此字段,索引體積會變大,如果既想使用此字段
又想兼顧索引體積,可以開啟索引壓縮
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/index-modules.html#index-codec
_size
整個_source字段的位元組數大小,需要單獨安裝一個插件才能展示,詳情參見:https://www.elastic.co/guide/en/elasticsearch/plugins/5.4/mapper-size.html
_source是可以被禁用的,不過禁用之後部分功能再支援:
update api:
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/docs-update.html
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-request-highlighting.html
索引重建、修改mapping以及分詞、索引更新
debug查詢或者聚合語句
索引自動修複
路由中繼資料
_parent
在同一個索引中,可以通過_parent字段來給兩個不同mapping type的資料建立父子關系,在查詢時可以通過has_child, has_parent等查詢,來聚合join資料,需要注意的是,父子type必須不能是一樣的,否則會識别失敗。
_routing
一個doc可以被路由到指定的shard上,通過下面的規則
shard_num = hash(_routing) % num_primary_shards
預設情況下,會使用 doc 的 _id 字段來參與路由規則,如果此doc有父子關系,則會以父親的_id作為路由規則,以確定父子資料 必須處于同一個shard上,以提高join效率
_ignored
elasticsearch 6.4之後添加元字段
_ignored 元字段索引和存儲文檔中由于ignore_malformed屬性被ignored 的每個字段的名稱。
其他
_meta
每個mapping type可以有不同的中繼資料類型,我們可以存儲自己定義認為的中繼資料中,此字段支援查詢和更新
參考
- https://www.elastic.co/guide/en/elasticsearch/reference/2.3/mapping-fields.html
- http://m635674608.iteye.com/blog/2259528
- http://www.111cn.net/jsp/J2EE-EJB/118565.htm