Alias 字段类型
Alias 字段类型为现有字段创建另一个名称。您可以在搜索和字段能力 API 操作中使用别名,但存在一些例外情况。要设置别名字段,需要在 path 参数中指定原始字段的名称。
示例
PUT movies
{
"mappings" : {
"properties" : {
"year" : {
"type" : "date"
},
"release_date" : {
"type" : "alias",
"path" : "year"
}
}
}
}
参数
| 参数 | 描述 |
|---|---|
path |
原始字段的完整路径,包括所有父对象。例如:parent.child.field_name。必需。 |
别名字段
别名字段必须遵守以下规则:
一个别名字段只能有一个原始字段。
在嵌套对象中,别名必须与原始字段具有相同的嵌套层级。
要更改别名引用的字段,需要更新映射。请注意,任何先前存储的渗透器查询中的别名仍将引用原始字段。
原始字段
别名的原始字段必须遵守以下规则:
原始字段必须在别名创建之前就已存在。
原始字段不能是对象或另一个别名。
在搜索 API 操作中使用别名
您可以在搜索 API 的以下读取操作中使用别名:
查询
排序
聚合
stored_fieldsdocvalue_fields建议
高亮显示
访问字段值的脚本
在字段能力 API 操作中使用别名
要在字段能力 API 中使用别名,请在 fields 参数中指定它。
GET movies/_field_caps?fields=release_date
例外情况
在以下情况下不能使用别名:
写入请求中,例如更新请求。
在多字段中或作为
copy_to的目标。作为过滤结果的 _source 参数。
在需要字段名的 API 中,例如词项向量 API。
在
terms、more_like_this和geo_shape查询中(检索文档时不支持别名)。
通配符
在搜索和字段能力的通配符查询中,原始字段和别名都会与通配符模式进行匹配。
GET movies/_field_caps?fields=release*