Elasticsearch入門必備——ES中的字段類型以及常用屬性

https://www.cnblogs.com/xing901022/p/5471419.html

 

字段中的索引和存儲

其中需要說明的是:

index定義字段的分析類型以及檢索方式

  • 如果是no,則無法通過檢索查詢到該字段;
  • 如果設置爲not_analyzed則會將整個字段存儲爲關鍵詞,常用於漢字短語、郵箱等複雜的字符串;
  • 如果設置爲analyzed則將會通過默認的standard分析器進行分析,詳細的分析規則參考這裏

索引index ,這個參數可以控制字段應該怎樣建索引,怎樣查詢。它有以下三個可用值: 
no: 不把此字段添加到索引中,也就是不建索引,此字段不可查詢
not_analyzed:將字段的原始值放入索引中,作爲一個獨立的term,它是除string字段以外的所有字段的默認值。 
analyzed:string字段的默認值,會通過默認的standard分析器進行分析後,再把分析的term結果存入索引中。

store定義了字段是否存儲

在《ES IN ACTION》中有這樣一段描述:

This might be useful when you ask Elasticsearch for a particular field because retrieving a single stored field will be faster than retrieving the entire _source and extracting that field from it, especially when you have large documents.
NOTE When you store individual fields as well, you should take into account that the more you store, the bigger your index gets. Usually bigger indices imply slower indexing and slower searching.

意思是,在ES中原始的文本會存儲在_source裏面(除非你關閉了它)。默認情況下其他提取出來的字段都不是獨立存儲的,是從_source裏面提取出來的。當然你也可以獨立的存儲某個字段,只要設置store:true即可。

獨立存儲某個字段,在頻繁使用某個特殊字段時很常用。而且獲取獨立存儲的字段要比從_source中解析快得多,而且額外你還需要從_source中解析出來這個字段,尤其是_source特別大的時候。

不過需要注意的是,獨立存儲的字段越多,那麼索引就越大;索引越大,索引和檢索的過程就會越慢....

string

字符串類型,es中最常用的類型,官方文檔

比較重要的參數:

index分析

  • analyzed(默認)
  • not_analyzed
  • no

store存儲

  • true 獨立存儲
  • false(默認)不存儲,從_source中解析

Numeric

數值類型,注意numeric並不是一個類型,它包括多種類型,比如:long,integer,short,byte,double,float,每種的存儲空間都是不一樣的,一般默認推薦integer和float。官方文檔參考

重要的參數:

index分析

  • not_analyzed(默認) ,設置爲該值可以保證該字段能通過檢索查詢到
  • no

store存儲

  • true 獨立存儲
  • false(默認)不存儲,從_source中解析

date

日期類型,該類型可以接受一些常見的日期表達方式,官方文檔參考

重要的參數:

index分析

  • not_analyzed(默認) ,設置爲該值可以保證該字段能通過檢索查詢到
  • no

store存儲

  • true 獨立存儲
  • false(默認)不存儲,從_source中解析

format格式化

  • strict_date_optional_time||epoch_millis(默認)
  • 你也可以自定義格式化內容,比如
"date": {
  "type":   "date",
  "format": "yyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
}

IP

這個類型可以用來標識IPV4的地址,參考官方文檔

常用參數:

index分析

  • not_analyzed(默認) ,設置爲該值可以保證該字段能通過檢索查詢到
  • no

store存儲

  • true 獨立存儲
  • false(默認)不存儲,從_source中解析

boolean

布爾類型,所有的類型都可以標識布爾類型,參考官方文檔

  • False: 表示該值的有:false, "false", "off", "no", "0", "" (empty string), 0, 0.0
  • True: 所有非False的都是true

重要的參數:

index分析

  • not_analyzed(默認) ,設置爲該值可以保證該字段能通過檢索查詢到
  • no

store存儲

  • true 獨立存儲
  • false(默認)不存儲,從_source中解析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章