es中的mapping類似關系型資料庫中的表結構。
mapping中包含一些屬性,如字段名稱、類型、字段使用的分詞器、是否評分、是否建立索引等屬性
get /product/_mapping
常見類型
1、數字類型:long、integer、short、byte、double、float等
2、keywords:該類型隻能通過精确值搜尋,不能被分詞。id應該用keyword
3、dates(時間類型):包括date和date nanos
4、alias:為現有字段定義别名
5、text:文本類型。預設會建立反向索引,做文字檢索。
對象關系類型
1、object:用于單個json對象
2、nested:用于json對象數組
結構化類型
1、geo-point:緯度/經度積分
2、geo-shape:用于多邊形等複雜形狀
3、point:笛卡爾坐标點
4、shape:笛卡爾任意幾何圖形
特殊類型
1、ip位址:ip用于ipv4和ipv6位址
2、completion:在浏覽器搜尋時提供建議
1、自動映射
整數:long
浮點數:float
true||false:boolean
日期:date
數組:取決于數組的第一個有效值
對象:object
字元串:如果不是數字和日期類型,那會被映射為text和keyword兩個類型
2、手動映射
1、index:是否對目前字段建立反向索引,預設為true,如果不建立反向索引,該字段不會通過索引被搜尋到,但是仍會在source中繼資料中展示
2、analyzer:指定分析器(分詞器等)
3、doc_value:正排索引,為了提高排序和聚合效率,預設true,如果确定不需要對字段進行排序或聚合,也不需要通過腳本通路字段值,則可以禁用doc值來節約磁盤
4、search_analyzer:設定單獨的查詢時分詞器