【发布时间】:2021-06-10 06:33:53
【问题描述】:
我创建了一个索引模板,我在其中为“关键字”字段类型定义了一个“ignore_above”映射参数。
现在我想更新映射并希望使用 PUT 映射 API 为相同的“关键字”字段添加一个新参数“eager_global_ordinals”,
我可以看到 API 返回 200OK。
所以当我调用 GET index-name 来验证映射时,我可以看到新的映射“eager_global_ordinals”,但看不到“ignore_above”?
我查了一下,发现“ignore_above”属性被默认值覆盖了?
意味着 PUT 映射 API 将映射参数覆盖为默认值,如果我没有传递任何参数。
有没有办法避免这种行为?
我依次尝试过的命令:
PUT /_index_template/example_template
{
"index_patterns": [
"example*"
],
"priority": 1,
"template": {
"aliases": {
"example":{}
},
"mappings": {
"_source":
{"enabled": false},
"properties": {
"SomeID":
{ "type": "keyword", "index" : true,"store":true,"ignore_above":5}
}
}
}
}
PUT example10022021
GET example10022021
在此 GET API 响应中,您可以在映射中看到“ignore_above”参数
PUT /example/_mappings
{
"properties": {
"SomeID": {
"type": "keyword",
"store":true,
"eager_global_ordinals":true
}
}
}
又来了
GET example10022021
现在您可以在响应中看到“ignore_above”参数是 不存在
【问题讨论】:
-
您可以分享您运行的命令以便我们重现该问题吗?
-
@Val 感谢您与我们联系!我已经用我尝试过的 API 更新了问题,你能帮忙吗?
标签: elasticsearch