天天看點

Mapping2.0

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:設定單獨的查詢時分詞器