インデックス API のシミュレーション
指定されたインデックスに適用されるインデックス構成を、既存の インデックステンプレート から返します。
Python
resp = client.indices.simulate_index_template(
name="my-index-000001",
)
print(resp)
Js
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 のセキュリティ機能が有効になっている場合、この API を使用するには
manage_index_templates
またはmanage
クラスター権限 が必要です。
パスパラメータ
<index>
- (必須、文字列) シミュレーションするインデックスの名前。
クエリパラメータ
master_timeout
- (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。 include_defaults
- (オプション、Boolean) [プレビュー] の機能。この機能は技術プレビュー中であり、将来のリリースで変更または削除される可能性があります。Elastic は問題を修正するために取り組みますが、技術プレビューの機能は公式 GA 機能のサポート SLA の対象ではありません。 .
true
の場合、レスポンスにすべてのデフォルト設定を返します。デフォルトはfalse
です。
レスポンスボディ
overlapping
- (配列) インデックスに一致したが、優先度の高いテンプレートによって上書きされたテンプレート。重複するテンプレートがない場合、レスポンスには空の配列が含まれます。
overlapping
のプロパティname
- (文字列) 上書きされたテンプレートの名前。
index_patterns
- (配列) 上書きされたテンプレートが適用されるインデックスパターン。
template
- (オブジェクト) インデックスに適用される設定、マッピング、およびエイリアス。
template
のプロパティaliases
- (オブジェクト) インデックスのエイリアス。エイリアスが適用されない場合、レスポンスは空の
aliases
オブジェクトを返します。<alias>
- (オブジェクト) キーはエイリアス名です。オブジェクトの本体にはエイリアスのオプションが含まれます。
<alias>
のプロパティ filter
- (Query DSL オブジェクト) エイリアスがアクセスできるドキュメントを制限するために使用されるクエリ。
index_routing
- (文字列) インデックス操作を特定のシャードにルーティングするために使用される値。これはインデックス操作の
routing
値を上書きします。 is_hidden
- (Boolean)
true
の場合、エイリアスは 非表示 です。 is_write_index
- (Boolean)
true
の場合、インデックスはエイリアスの 書き込みインデックス です。 routing
- (文字列) インデックスおよび検索操作を特定のシャードにルーティングするために使用される値。
search_routing
- (文字列) 検索操作を特定のシャードにルーティングするために使用される値。これは検索操作の
routing
値を上書きします。
mappings
- (オプション、マッピングオブジェクト) インデックス内のフィールドのマッピング。指定された場合、このマッピングには次のものが含まれる可能性があります:
- フィールド名
- フィールドデータ型
- マッピングパラメータ
マッピング を参照してください。
マッピングが適用されない場合、レスポンスから省略されます。
settings
- (オプション、インデックス設定オブジェクト) インデックスの構成オプション。 インデックス設定 を参照してください。
レスポンスには、設定が適用されない場合、空のオブジェクトが含まれます。
例
以下の例は、既存のテンプレートによって my-index-000001
に適用される構成を示しています。
Python
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)
Ruby
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
Js
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
シャード数を 2 に設定するコンポーネントテンプレート (ct1 ) を作成 |
|
レプリカ数を 0 に設定し、マッピングを定義する 2 番目のコンポーネントテンプレート (ct2 ) を作成 |
|
コンポーネントテンプレートを使用するインデックステンプレート (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-*"
]
}
]
}