Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›REST API ›API индексов

API симуляции индекса

Справочник по новым API

Для получения самых последних данных об API обратитесь к API индексов.

Возвращает конфигурацию индекса, которая будет применена к указанному индексу из существующей шаблона индекса.

resp = client.indices.simulate_index_template(
    name="my-index-000001",
)
print(resp)
const response = await client.indices.simulateIndexTemplate({
  name: "my-index-000001",
});
console.log(response);
POST /_index_template/_simulate_index/my-index-000001

Запрос

POST /_index_template/_simulate_index/<index>

Предварительные условия

  • Если включены функции безопасности Elasticsearch, у вас должна быть роль manage_index_templates или manage права кластера для использования этого API.

Параметры пути

<index>
(Обязательно, строка) Название индекса для симуляции.

Параметры запроса

master_timeout
(Необязательно, единицы времени) Время ожидания узла-мастера. Если узел-мастер недоступен до истечения таймаута, запрос завершается ошибкой. По умолчанию 30s. Также может быть установлено значение -1, чтобы указать, что запрос никогда не должен истечь.
include_defaults
(Необязательно, логическое значение) Функциональность в [превью] Эта функциональность находится на стадии технического превью и может быть изменена или удалена в будущих версиях. Elastic будет работать над устранением любых проблем, но функции технического превью не подпадают под SLA поддержки официальных функций GA. . Если true, вернуть все значения по умолчанию в ответе. По умолчанию false.

Тело ответа

overlapping

(массив) Любые шаблоны, которые также соответствовали индексу, но были заменены шаблоном с более высоким приоритетом. Ответ включает пустой массив, если перекрывающихся шаблонов нет.

Свойства overlapping
name
(строка) Название заменённого шаблона.
index_patterns
(массив) Шаблоны индексов, к которым применяется заменённый шаблон.
template

(объект) Параметры настроек, отображений и псевдонимов, которые будут применены к индексу.

Свойства template
aliases

(объект) Псевдонимы для индекса. Если псевдонимы не применяются, в ответе возвращается пустой aliases объект.

<alias>

(объект) Ключ — имя псевдонима. Тело объекта содержит параметры для псевдонима.

Свойства <alias>
filter
(объект DSL запросов) Запрос, используемый для ограничения документов, к которым может получить доступ псевдоним.
index_routing
(строка) Значение, используемое для маршрутизации операций индексирования на определённый фрагмент. Перезаписывает routing значение для операций индексирования.
is_hidden
(логическое значение) Если true, псевдоним скрыт.
is_write_index
(логическое значение) Если true, индекс является записываемым индексом для псевдонима.
routing
(строка) Значение, используемое для маршрутизации операций индексирования и поиска на определённый фрагмент.
search_routing
(строка) Значение, используемое для маршрутизации операций поиска на определённый фрагмент. Перезаписывает routing значение для операций поиска.
mappings

(Необязательно, объект отображения) Отображение полей в индексе. При указании отображение может включать:

  • Имена полей
  • Типы данных полей
  • Параметры отображения

См. Отображение.

Опускается из ответа, если отображения не будут применяться.

settings

(Необязательно, объект настроек индекса) Параметры конфигурации для индекса. См. Параметры индекса.

Возвращается пустой объект, если настройки не будут применены.

Примеры

В следующем примере показана конфигурация, которая будет применена к my-index-000001 существующим шаблоном.

resp = client.cluster.put_component_template(
    name="ct1",
    template={
        "settings": {
            "index.number_of_shards": 2
        }
    },
)
print(resp)

resp1 = client.cluster.put_component_template(
    name="ct2",
    template={
        "settings": {
            "index.number_of_replicas": 0
        },
        "mappings": {
            "properties": {
                "@timestamp": {
                    "type": "date"
                }
            }
        }
    },
)
print(resp1)

resp2 = client.indices.put_index_template(
    name="final-template",
    index_patterns=[
        "my-index-*"
    ],
    composed_of=[
        "ct1",
        "ct2"
    ],
    priority=5,
)
print(resp2)

resp3 = client.indices.simulate_index_template(
    name="my-index-000001",
)
print(resp3)
response = client.cluster.put_component_template(
  name: 'ct1',
  body: {
    template: {
      settings: {
        'index.number_of_shards' => 2
      }
    }
  }
)
puts response

response = client.cluster.put_component_template(
  name: 'ct2',
  body: {
    template: {
      settings: {
        'index.number_of_replicas' => 0
      },
      mappings: {
        properties: {
          "@timestamp": {
            type: 'date'
          }
        }
      }
    }
  }
)
puts response

response = client.indices.put_index_template(
  name: 'final-template',
  body: {
    index_patterns: [
      'my-index-*'
    ],
    composed_of: [
      'ct1',
      'ct2'
    ],
    priority: 5
  }
)
puts response
const response = await client.cluster.putComponentTemplate({
  name: "ct1",
  template: {
    settings: {
      "index.number_of_shards": 2,
    },
  },
});
console.log(response);

const response1 = await client.cluster.putComponentTemplate({
  name: "ct2",
  template: {
    settings: {
      "index.number_of_replicas": 0,
    },
    mappings: {
      properties: {
        "@timestamp": {
          type: "date",
        },
      },
    },
  },
});
console.log(response1);

const response2 = await client.indices.putIndexTemplate({
  name: "final-template",
  index_patterns: ["my-index-*"],
  composed_of: ["ct1", "ct2"],
  priority: 5,
});
console.log(response2);

const response3 = await client.indices.simulateIndexTemplate({
  name: "my-index-000001",
});
console.log(response3);
PUT /_component_template/ct1                    
{
  "template": {
    "settings": {
      "index.number_of_shards": 2
    }
  }
}

PUT /_component_template/ct2                    
{
  "template": {
    "settings": {
      "index.number_of_replicas": 0
    },
    "mappings": {
      "properties": {
        "@timestamp": {
          "type": "date"
        }
      }
    }
  }
}

PUT /_index_template/final-template             
{
  "index_patterns": ["my-index-*"],
  "composed_of": ["ct1", "ct2"],
  "priority": 5
}

POST /_index_template/_simulate_index/my-index-000001 

Создать шаблон компонента (ct1), который устанавливает количество фрагментов в 2

Создать второй шаблон компонента (ct2), который устанавливает количество реплик в 0 и определяет отображение

Создать шаблон индекса (final-template), который использует шаблоны компонентов

Показать конфигурацию, которая будет применена к my-index-000001

В ответе показаны параметры настроек, отображения и псевдонимы индекса, применяемые final-template:

{
  "template" : {
    "settings" : {
      "index" : {
        "number_of_shards" : "2",
        "number_of_replicas" : "0",
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        }
      }
    },
    "mappings" : {
      "properties" : {
        "@timestamp" : {
          "type" : "date"
        }
      }
    },
    "aliases" : { }
  },
  "overlapping" : [
    {
      "name" : "template_1",
      "index_patterns" : [
        "my-index-*"
      ]
    }
  ]
}

© 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/indices-simulate-index.html

Spec-Zone.ru

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