【Elasticsearch】模式映射之核心類型

模式映射用於定義索引結構。在創建mapping映射時須要指定字段的類型,如下詳細介紹mapping屬性常見字段類型。html


每一個字段類型能夠指定爲ElasticSearch中某個特定的核心類型。ElasticSearch的核心類型以下:
1)字符串類型
2)數值類型
3)日期型
4)布爾型
5)二進制型app


首先介紹一下通用屬性。
index_name:該屬性是存儲在索引中的字段名稱。若是未指定,則默認爲字段定義的對象的名稱。一般忽略該屬性。
index:該屬性的取值可爲analyzed或no,若是爲analyzed,則該字段將被索引,於是是能夠搜索的;若是爲no,則該字段不可被搜索。默認值是analyzed。字符串型的字段有一個額外的選項--not_analyzed,意思是該字段會被索引但不須要分析。所以,該字段按原樣寫入索引,只有徹底匹配的搜索才能查到該字段。
store:該屬性的取值能夠爲yes或no,用於指定字段的原始值是否存入索引。默認值是no,意味着不能在結果中返回字段的原始值(沒有原始值也能夠經過_source字段返回原始值)
boost:該屬性默認爲1。用於定義該字段在文檔中的重要性,值越高表示該字段的取值越重要。
null_value:該屬性指定若是某字段在被索引的文檔中不存在時應寫入何值。默認行爲是忽略該字段。
include_in_all:該屬性指定某字段是否應被包含到_all字段中。默認狀況下,若是啓用_all字段則包含全部的字段。orm

1、字符串型
term_vector(詞向量):該屬性的取值能夠爲no(默認值)、yes、with_offsets、with_positions、with_positions_offsets。該屬性表示是否對該字段計算lucene詞向量,若是使用的是高亮則須要計算詞向量。
omit_norms:取值能夠爲true或false,默認是false,若是爲true則禁用該字段的lucene norms計算,則不能使用索引時加權。
omit_term_freq_and_positions:該屬性的取值可爲true或false,默認爲false。若想創建索引時忽略詞頻和位置的計算,可將屬性設爲true。(0.20版本之後開始棄用)
index_options:用於設置索引選項。可能的取值是docs(索引文檔的數量)、freqs(索引的文檔數量和詞頻)、positions(索引的文檔數量、詞頻和單詞出現位置)。默認值是freqs(從0.20版本開始可用)。
analyzer:用於索引和搜索的分析器名稱,默認是全局定義的分析器。
index_analyzer:用於索引的分析器的名稱。
search_analyzer:用於處理做用在該字段的查詢的分析器的名稱。
ignore_above:字段的最大長度,超出指定長度的部分會被忽略。若是隻關心字段的前N個字符,則該屬性很是有用。htm

2、數值型
precision_step:該屬性設置爲字段的每一個取值生成的項數。值越低則生成的項數越多,進行range查詢時就越快(但索引也會變大),默認值是4。
ignore_malformed:取值能夠爲true或false,默認值是false。若想要忽略格式錯誤的數值,則應該設置爲true。對象

3、日期型
format:用於指定日期格式。默認值是dateOperationalTime。可選格式參考官方date-format.html文檔
precision_step:該屬性設置爲字段的每一個取值生成的項數。值越低則生成的項數越多,進行range查詢時就越快(但索引也會變大),默認值是4。
ignore_malformed:取值能夠爲true或false,默認值是false。若想要忽略格式錯誤的數值,則應該設置爲true。索引

4、布爾型:取值爲true或falseci

5、二進制型(binary)
二進制字段是指用base64來表示索引中存儲的二進制數據,可用來存儲二進制形式的數據,例如圖像。默認狀況下,該類型的字段只存儲不索引。二進制類型只支持index_name屬性文檔

相關文章
相關標籤/搜索