一、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/n/370288.html
微信扫一扫
支付宝扫一扫