Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Устранение неполадок

Разрешение Elasticsearch выделять индекс

Выделение данных можно контролировать с помощью настройки включения выделения. В определенных ситуациях пользователи могут временно отключить или ограничить выделение данных.

Если забыть повторно разрешить выделение всех данных, это может привести к неназначенным фрагментам.

Чтобы (снова) разрешить выделение всех данных, выполните следующие действия:

Для назначения фрагментов нам нужно изменить значение настройки, которая ограничивает назначение фрагментов для all.

Используйте Kibana

  1. Войдите в консоль Elastic Cloud.
  2. На панели Службы Elasticsearch щелкните имя вашего развертывания.

    Если имя вашего развертывания отключено, ваши экземпляры Kibana могут быть неисправны. В этом случае обратитесь в службу поддержки Elastic. Если ваше развертывание не включает Kibana, вам нужно будет сначала его включить.

  3. Откройте меню боковой навигации развертывания (расположено под логотипом Elastic в верхнем левом углу) и перейдите к Dev Tools > Console.

    Kibana Console
  4. Просмотрите index.routing.allocation.enable настройку индекса для индекса с неназначенными фрагментами:

    resp = client.indices.get_settings(
        index="my-index-000001",
        name="index.routing.allocation.enable",
        flat_settings=True,
    )
    print(resp)
    response = client.indices.get_settings(
      index: 'my-index-000001',
      name: 'index.routing.allocation.enable',
      flat_settings: true
    )
    puts response
    const response = await client.indices.getSettings({
      index: "my-index-000001",
      name: "index.routing.allocation.enable",
      flat_settings: "true",
    });
    console.log(response);
    GET /my-index-000001/_settings/index.routing.allocation.enable?flat_settings

    Ответ будет похож на этот:

    {
      "my-index-000001": {
        "settings": {
          "index.routing.allocation.enable": "none" 
        }
      }
    }

    Представляет текущее значение настройки, которая контролирует, разрешено ли частично или полностью выделять индекс.

  5. Измените значение настройки, чтобы разрешить полное выделение индекса:

    resp = client.indices.put_settings(
        index="my-index-000001",
        settings={
            "index": {
                "routing.allocation.enable": "all"
            }
        },
    )
    print(resp)
    response = client.indices.put_settings(
      index: 'my-index-000001',
      body: {
        index: {
          'routing.allocation.enable' => 'all'
        }
      }
    )
    puts response
    const response = await client.indices.putSettings({
      index: "my-index-000001",
      settings: {
        index: {
          "routing.allocation.enable": "all",
        },
      },
    });
    console.log(response);
    PUT /my-index-000001/_settings
    {
      "index" : {
        "routing.allocation.enable" : "all" 
      }
    }

    Новое значение настройки allocation.enable для индекса my-index-000001 изменено на разрешение выделения всех фрагментов.

Для назначения фрагментов нам нужно изменить значение настройки, которая ограничивает назначение фрагментов для all.

  1. Просмотрите index.routing.allocation.enable настройку индекса для индекса с неназначенными фрагментами:

    resp = client.indices.get_settings(
        index="my-index-000001",
        name="index.routing.allocation.enable",
        flat_settings=True,
    )
    print(resp)
    response = client.indices.get_settings(
      index: 'my-index-000001',
      name: 'index.routing.allocation.enable',
      flat_settings: true
    )
    puts response
    const response = await client.indices.getSettings({
      index: "my-index-000001",
      name: "index.routing.allocation.enable",
      flat_settings: "true",
    });
    console.log(response);
    GET /my-index-000001/_settings/index.routing.allocation.enable?flat_settings

    Ответ будет похож на этот:

    {
      "my-index-000001": {
        "settings": {
          "index.routing.allocation.enable": "none" 
        }
      }
    }

    Представляет текущее значение настройки, которая контролирует, разрешено ли частично или полностью выделять индекс.

  2. Измените значение настройки, чтобы разрешить полное выделение индекса:

    resp = client.indices.put_settings(
        index="my-index-000001",
        settings={
            "index": {
                "routing.allocation.enable": "all"
            }
        },
    )
    print(resp)
    response = client.indices.put_settings(
      index: 'my-index-000001',
      body: {
        index: {
          'routing.allocation.enable' => 'all'
        }
      }
    )
    puts response
    const response = await client.indices.putSettings({
      index: "my-index-000001",
      settings: {
        index: {
          "routing.allocation.enable": "all",
        },
      },
    });
    console.log(response);
    PUT /my-index-000001/_settings
    {
      "index" : {
        "routing.allocation.enable" : "all" 
      }
    }

    Новое значение настройки allocation.enable для индекса my-index-000001 изменено на разрешение выделения всех фрагментов.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/allow-all-index-allocation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API