更新索引对应的 mapping
PUT /api/:target/_mapping
请求示例
PUT http://localhost:4080/api/myindex/_mapping
请求体
{
"properties": {
"name": {
"type": "text",
"index": true,
"store": true,
"sortable": false,
"aggregatable": false,
"highlightable": true
},
"author": {
"type": "keyword",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
},
"price": {
"type": "numeric",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
},
"published": {
"type": "bool",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
},
"create_at": {
"type": "date",
"format": "2006-01-02T15:04:05Z07:00",
"time_zone": "",
"index": true,
"store": false,
"sortable": true,
"aggregatable": true,
"highlightable": false
}
}
}
mapping 也可以在创建索引时定义。
字段类型
类型 | 别名 | 描述 |
---|---|---|
text | — | 默认类型,该类型将字符串分析为某些标记 |
keyword | — | 将整个字符串作为标记使用,查询时只是一个词项 |
bool | boolean | 类似于 keyword,但值只能是 true 或 false。 |
numeric | integer, double, long, short, int, float | 数值类型,它支持范围查询。 |
date | time, datetime | 日期类型,它支持范围查询和日期聚合 |
字段类型对应的解析规则
text
默认情况下,所有字符串值都解析为文本类型,它可以支持匹配和许多查询。
文本类型支持两个参数分析器和搜索分析器。
分析器和搜索分析器您可以参考 https://zincsearch-docs.zinc.dev/api/index/analyze/
keyword
您应该预先定义此类型。
通常用于某些特殊值,它应具有限制值,通常不包含空格。例如:一周的几天、一年的四季、某物的标签等。
它可以支持 match
查询、term
查询和 terms
聚合。
bool
非常简单,仅用于布尔类型。它将检测布尔值并将类型设置为 bool。
它可以支持 term
查询和 terms
聚合。
numeric
所有 integer
, double
, long
, short
, int
, float
的值都将被检测并设置为 numeric
类型。
它可以支持 term
查询、terms
聚合、range
聚合以及所有 metrics
聚合,如 min
, max
, avg
, sum
, count
。
date
您应该预先定义此类型。日期类型支持 format
和 time_zone
。
format 您可以在 https://pkg.go.dev/time#pkg-constants 中参考日期格式。
默认的日期格式是:2006-01-02T15:04:05Z07:00 ,对应于 time.RFC3339。
您可以设置Go支持的其他格式。
您也可以将日期字段的格式设置为时间戳(epoch_millis)。
time_zone
默认值是 UTC
,您可以像下面这样设置:+08:00
或 -01:00
。
字段属性
所有字段都支持 5 个属性