一、text
text類型是最常用的類型之一,用於存儲文本內容。文本內容可以分詞,也就是說,輸入的文本會被自動分詞成多個單詞,方便後續的搜索和匹配。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "message": { "type": "text" } } } }
可以看到,要使用text類型,只需要在字段映射中設置type為text即可。下面是text類型的一些配置選項:
1、analyzer
analyzer決定了分析器的種類,常用的分析器包括standard、english、chinese等。默認情況下,使用的是standard分析器。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "message": { "type": "text", "analyzer": "english" } } } }
2、fielddata
fielddata表示是否需要對該字段進行聚合和排序等操作。默認情況下,text類型不支持fielddata,需要手動開啟。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "message": { "type": "text", "fielddata": true } } } }
二、keyword
keyword類型用於存儲關鍵詞,不進行分詞。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "tags": { "type": "keyword" } } } }
與text類型不同,keyword類型不支持analyzer和fielddata選項。但是,可以通過設置ignore_above選項來限制關鍵詞的長度。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "tags": { "type": "keyword", "ignore_above": 256 } } } }
三、date
date類型用於存儲日期,支持多種日期格式。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "timestamp": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" } } } }
date類型也支持其他的配置選項,如timezone、locale等。
四、integer
integer類型用於存儲整數。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "count": { "type": "integer" } } } }
integer類型也支持其他的配置選項,如coerce、ignore_malformed等。
五、float
float類型用於存儲浮點數。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "price": { "type": "float" } } } }
float類型也支持其他的配置選項,如coerce、ignore_malformed等。
六、boolean
boolean類型用於存儲布爾值。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "available": { "type": "boolean" } } } }
boolean類型也支持其他的配置選項,如null_value等。
七、geo_point
geo_point類型用於存儲經緯度信息,可以用來做地理位置搜索。下面是一個示例代碼:
PUT my_index { "mappings": { "properties": { "location": { "type": "geo_point" } } } }
geo_point類型也支持其他的配置選項,如geohash、geohash_prefix、geohash_precision等。
原創文章,作者:UEQDX,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/370288.html