无法在索引上设置 index.mapping.single_type: true
Not able to set index.mapping.single_type: true on an index
我有一个只有单一类型的索引。现在,我计划启用 "index.mapping.single_type" 并触发了以下 API 来实现它,但出现了以下错误。
顺便说一句,我在应用上述 API.
之前关闭了索引
语法有问题还是不允许.
PUT testindex1/_settings
{
"settings": {
"index.mapping.single_type": true
}
}
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "final testindex1 setting [index.mapping.single_type], not updateable"
}
],
"type": "illegal_argument_exception",
"reason": "final testindex1 setting [index.mapping.single_type], not updateable"
},
"status": 400
}
有些设置即使在索引关闭时也无法动态更新,index.number_of_shards
也是一种这样的设置,它们称为 final
设置,您的 index.mapping.single_type
也是 final
设置,甚至在您的错误消息中也提到了,我将设置的 final
部分加粗以区分它。
final testindex1 setting [index.mapping.single_type], not updateable
使用 Elasticsearch 源代码可以更好地理解它。 class org.elasticsearch.common.settings.Setting
定义设置的类型,请参阅下面对 final
设置的解释。
/**
* mark this setting as final, not updateable even when the context is not dynamic
* ie. Setting this property on an index scoped setting will fail update when the index is closed
*/
Final,
您可以在 Elasticsearch 中检查 this line 上面的代码,它解释了更多,下面的代码显示了这个 final
类型用于创建 number of primary shard
设置。
Setting.intSetting(SETTING_NUMBER_OF_SHARDS, 1, 1, maxNumShards, Property.IndexScope, Property.Final);
我希望你明白,现在是错误的原因,看起来你必须重新索引新设置的数据。
我有一个只有单一类型的索引。现在,我计划启用 "index.mapping.single_type" 并触发了以下 API 来实现它,但出现了以下错误。
顺便说一句,我在应用上述 API.
之前关闭了索引语法有问题还是不允许.
PUT testindex1/_settings
{
"settings": {
"index.mapping.single_type": true
}
}
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "final testindex1 setting [index.mapping.single_type], not updateable"
}
],
"type": "illegal_argument_exception",
"reason": "final testindex1 setting [index.mapping.single_type], not updateable"
},
"status": 400
}
有些设置即使在索引关闭时也无法动态更新,index.number_of_shards
也是一种这样的设置,它们称为 final
设置,您的 index.mapping.single_type
也是 final
设置,甚至在您的错误消息中也提到了,我将设置的 final
部分加粗以区分它。
final testindex1 setting [index.mapping.single_type], not updateable
使用 Elasticsearch 源代码可以更好地理解它。 class org.elasticsearch.common.settings.Setting
定义设置的类型,请参阅下面对 final
设置的解释。
/** * mark this setting as final, not updateable even when the context is not dynamic * ie. Setting this property on an index scoped setting will fail update when the index is closed */ Final,
您可以在 Elasticsearch 中检查 this line 上面的代码,它解释了更多,下面的代码显示了这个 final
类型用于创建 number of primary shard
设置。
Setting.intSetting(SETTING_NUMBER_OF_SHARDS, 1, 1, maxNumShards, Property.IndexScope, Property.Final);
我希望你明白,现在是错误的原因,看起来你必须重新索引新设置的数据。