Не удалось установить index.mapping.single_type: true для индекса - PullRequest
1 голос
/ 01 апреля 2020

У меня был индекс одного типа. Теперь я планирую включить «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
}

1 Ответ

1 голос
/ 01 апреля 2020

Некоторые настройки не могут обновляться динамически, даже когда индекс закрыт, index.number_of_shards также является одной из таких настроек, и они называются final настройками, а ваша index.mapping.single_type также является настройкой final, которая упоминается даже в вашей сообщение об ошибке, я выделил часть final настройки, чтобы отличить guish it.

окончательный параметр testindex1 [index.mapping.single_type], не обновляемый

Вы можете лучше понять это, используя исходный код Elasticsearch. класс org.elasticsearch.common.settings.Setting определяет тип настроек и см. приведенное ниже объяснение настроек final.

/ ** * помечает этот параметр как окончательный, не обновляемый, даже если контекст не является динамическим * ie. Установка этого свойства в настройке области индекса не будет обновляться при закрытии индекса * / Final,

Вы можете проверить эту строку для приведенного выше кода в Elasticsearch, который объясняет больше, и приведенный ниже код показывает, что этот тип final используется для создания number of primary shard настроек.

Setting.intSetting(SETTING_NUMBER_OF_SHARDS, 1, 1, maxNumShards, Property.IndexScope, Property.Final);

Надеюсь, вы понимаете, теперь причина ошибки, и похоже, что вы должны переиндексировать данные, какие новые настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...