API моделирования шаблона индекса
Возвращает конфигурацию индекса, которая будет применена конкретным шаблоном индекса.
resp = client.indices.simulate_template(
name="template_1",
)
print(resp) const response = await client.indices.simulateTemplate({
name: "template_1",
});
console.log(response); POST /_index_template/_simulate/template_1
Запрос
POST /_index_template/_simulate/<index-template>
Предварительные условия
- Если включены функции безопасности Elasticsearch, у вас должна быть роль
manage_index_templatesилиmanageправа доступа к кластеру для использования этого API.
Параметры пути
-
<index-template> - (Необязательно, строка) Название шаблона индекса для моделирования. Чтобы протестировать конфигурацию шаблона перед добавлением его в кластер, опустите этот параметр и укажите конфигурацию шаблона в теле запроса.
Параметры запроса
-
create - (Необязательно, Булево) Если
true, шаблон, переданный в теле, используется только если ни один существующий шаблон не соответствует тем же шаблонам индексов. Еслиfalse, для моделирования используется шаблон с наивысшим приоритетом. Обратите внимание, что шаблон не добавляется или обновляется в обоих случаях постоянно; он используется только для моделирования. По умолчанию значениеfalse. -
master_timeout - (Необязательно, единицы времени) Период ожидания узла мастера. Если узел мастера недоступен до истечения времени ожидания, запрос завершается ошибкой и возвращается сообщение об ошибке. По умолчанию
30s. Также может быть установлено значение-1, чтобы указать, что запрос никогда не должен истекать. -
include_defaults - (Необязательно, Булево) Функциональность в [предварительный просмотр] Эта функциональность находится на стадии технического предварительного просмотра и может быть изменена или удалена в будущих выпусках. Elastic будет работать над исправлением любых проблем, но функции технического предварительного просмотра не подпадают под SLA поддержки официальных функций GA. . Если
true, в ответ возвращаются все значения по умолчанию. По умолчаниюfalse.
Тело запроса
-
data_stream -
(Необязательно, объект) Если этот объект включен, шаблон используется для создания потоков данных и их базовых индексов. Поддерживается пустой объект.
Для потоков данных требуется соответствующий шаблон индекса с объектом
data_stream. Смотрите создание шаблона индекса.Свойства
data_stream-
allow_custom_routing - (Необязательно, Булево) Если
true, поток данных поддерживает настраиваемое маршрутизирование. По умолчаниюfalse. -
hidden - (Необязательно, Булево) Если
true, поток данных является скрытым. По умолчаниюfalse. -
index_mode -
(Необязательно, строка) Тип создаваемого потока данных. Допустимые значения:
null(стандартный поток данных),time_series(поток данных временных рядов) иlogsdb(поток данных журналов).Шаблон
index_modeустанавливаетindex.modeбазового индекса.
-
-
index_patterns -
(Обязательно, массив строк) Массив шаблонов подстановок (
*) выражений, используемых для соответствия именам потоков данных и индексов во время создания.Elasticsearch включает несколько встроенных шаблонов индексов. Чтобы избежать конфликтов имен с этими шаблонами, см. Избегайте конфликтов имен шаблонов индексов.
-
_meta - (Необязательно, объект) Необязательные пользовательские метаданные о шаблоне индекса. Может содержать любые данные. Эта карта не генерируется автоматически Elasticsearch.
-
priority - (Необязательно, целое число) Приоритет для определения приоритета шаблона индекса при создании нового потока данных или индекса. Выбирается шаблон индекса с наивысшим приоритетом. Если приоритет не указан, шаблон обрабатывается как имеющий приоритет 0 (самый низкий приоритет). Это число не генерируется автоматически Elasticsearch.
-
template -
(Необязательно, объект) Применяемый шаблон. Он может необязательно содержать конфигурацию
aliases,mappingsилиsettings.Свойства
template-
aliases -
(Необязательно, объект объектов) Алиасы для добавления.
Если шаблон индекса содержит объект
data_stream, это алиасы потоков данных. В противном случае это алиасы индексов. Алиасы потоков данных игнорируют опцииindex_routing,routingиsearch_routing.Свойства объектов
aliases-
<alias> -
(Обязательно, объект) Ключ — это имя алиаса. Имена алиасов индексов поддерживают поддержку даты математики.
Тело объекта содержит параметры алиаса. Поддерживается пустой объект.
Свойства
<alias>-
filter - (Необязательно, объект запроса Query DSL) Запрос, используемый для ограничения документов, к которым может получить доступ алиас.
-
index_routing - (Необязательно, строка) Значение, используемое для маршрутизации операций индексирования на определенный фрагмент. При указании значение заменяет значение
routingдля операций индексирования. -
is_hidden - (Необязательно, Булево) Если
true, алиас является скрытым. По умолчаниюfalse. Все индексы для алиаса должны иметь одинаковое значениеis_hidden. -
is_write_index - (Необязательно, Булево) Если
true, индекс является индексом записи для алиаса. По умолчаниюfalse. -
routing - (Необязательно, строка) Значение, используемое для маршрутизации операций индексирования и поиска на определенный фрагмент.
-
search_routing - (Необязательно, строка) Значение, используемое для маршрутизации операций поиска на определенный фрагмент. При указании значение заменяет значение
routingдля операций поиска.
-
-
-
mappings -
(Необязательно, объект сопоставления) Сопоставление для полей в индексе. При указании это сопоставление может включать:
- Имена полей
- Типы данных полей
- Параметры сопоставления
См. Картирование.
-
settings - (Необязательно, объект настроек индекса) Параметры конфигурации индекса. Смотрите Настройки индекса.
version- (Необязательно, целое число) Номер версии, используемый для управления шаблонами индексов внешним образом. Это число не генерируется автоматически Elasticsearch.
deprecated- (Необязательно, булево) Помечает этот шаблон индекса как устаревший. При создании или обновлении не устаревшего шаблона индекса, использующего устаревшие компоненты, Elasticsearch выведет предупреждение об устаревании.
-
Тело ответа
-
overlapping -
(массив) Любые шаблоны, которые были заменены указанным шаблоном.
Свойства
overlapping-
index_patterns - (массив) Шаблоны индексов, к которым применяется заменённый шаблон.
-
name - (строка) Название заменённого шаблона.
-
-
template -
(объект) Настройки, отображения и псевдонимы, которые будут применены к соответствующим индексам.
Свойства
template-
aliases -
(Необязательно, объект объектов) Псевдонимы для индекса. Если шаблон индекса включает
data_stream, этот параметр не поддерживается.Свойства объектов
aliases-
<alias> -
(Обязательно, объект) Ключ — имя псевдонима. Имена псевдонимов индексов поддерживают математику дат.
Тело объекта содержит параметры для псевдонима. Поддерживается пустой объект.
Свойства
<alias>-
filter - (Необязательно, объект Query DSL) Запрос, используемый для ограничения документов, к которым может получить доступ псевдоним.
-
index_routing - (Необязательно, строка) Значение, используемое для маршрутизации операций индексирования на определённый фрагмент. Если указано, это значение перезаписывает значение
routingдля операций индексирования. -
is_hidden - (Необязательно, булево значение) Если
true, псевдоним скрыт. По умолчаниюfalse. Все индексы для псевдонима должны иметь одинаковое значениеis_hidden. -
is_write_index - (Необязательно, булево значение) Если
true, индекс является индексом записи для псевдонима. По умолчаниюfalse. -
routing - (Необязательно, строка) Значение, используемое для маршрутизации операций индексирования и поиска на определённый фрагмент.
-
search_routing - (Необязательно, строка) Значение, используемое для маршрутизации операций поиска на определённый фрагмент. Если указано, это значение перезаписывает значение
routingдля операций поиска.
-
-
-
mappings -
(Необязательно, объект отображения) Отображение полей в индексе. Если указано, это отображение может включать:
- Имена полей
- Типы данных полей
- Параметры отображения
См. Отображение.
-
settings - (Необязательно, объект настроек индекса) Параметры конфигурации для индекса. См. Настройки индекса.
-
Примеры
Моделирование существующего шаблона
В следующем примере создаётся и моделируется составной шаблон:
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_template(
name="final-template",
)
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
response = client.indices.simulate_template(
name: 'final-template'
)
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.simulateTemplate({
name: "final-template",
});
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/final-template | Создание компонентного шаблона ( | |
| Создание компонентного шаблона ( | |
| Создание шаблона индекса ( | |
| Отображение конфигурации, применяемой шаблоном |
В ответе показаны настройки индекса, отображения и псевдонимы, применяемые шаблоном 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" : [ ]
} | Количество фрагментов из | |
| Количество реплик из | |
| Отображения из |
Моделирование произвольной конфигурации шаблона
Чтобы увидеть, какие настройки будут применены шаблоном перед добавлением его в кластер, вы можете передать конфигурацию шаблона в теле запроса. Указанный шаблон используется для моделирования, если у него более высокий приоритет, чем у существующих шаблонов.
resp = client.indices.simulate_template(
index_patterns=[
"my-index-*"
],
composed_of=[
"ct2"
],
priority=10,
template={
"settings": {
"index.number_of_replicas": 1
}
},
)
print(resp) response = client.indices.simulate_template(
body: {
index_patterns: [
'my-index-*'
],
composed_of: [
'ct2'
],
priority: 10,
template: {
settings: {
'index.number_of_replicas' => 1
}
}
}
)
puts response const response = await client.indices.simulateTemplate({
index_patterns: ["my-index-*"],
composed_of: ["ct2"],
priority: 10,
template: {
settings: {
"index.number_of_replicas": 1,
},
},
});
console.log(response); POST /_index_template/_simulate
{
"index_patterns": ["my-index-*"],
"composed_of": ["ct2"],
"priority": 10,
"template": {
"settings": {
"index.number_of_replicas": 1
}
}
} В ответе отображаются любые перекрывающиеся шаблоны с более низким приоритетом.
{
"template" : {
"settings" : {
"index" : {
"number_of_replicas" : "1",
"routing" : {
"allocation" : {
"include" : {
"_tier_preference" : "data_content"
}
}
}
}
},
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
}
}
},
"aliases" : { }
},
"overlapping" : [
{
"name" : "final-template",
"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-template.html