Flush API
1つ以上のデータストリームまたはインデックスをフラッシュします。
Python
resp = client.indices.flush(
index="my-index-000001",
)
print(resp)
Ruby
response = client.indices.flush(
index: 'my-index-000001'
)
puts response
Js
const response = await client.indices.flush({
index: "my-index-000001",
});
console.log(response);
Console
POST /my-index-000001/_flush
Request
POST /<target>/_flush
GET /<target>/_flush
POST /_flush
GET /_flush
Prerequisites
- Elasticsearchのセキュリティ機能が有効になっている場合、ターゲットデータストリーム、インデックス、またはエイリアスに対して
maintenance
またはmanage
インデックス権限を持っている必要があります。
Description
データストリームまたはインデックスをフラッシュすることは、現在トランザクションログにのみ保存されているデータがLuceneインデックスにも永続的に保存されることを確認するプロセスです。再起動時、Elasticsearchはトランザクションログからフラッシュされていない操作をLuceneインデックスに再生し、再起動前の状態に戻します。Elasticsearchは、フラッシュを実行するコストとフラッシュされていないトランザクションログのサイズをトレードオフするヒューリスティックを使用して、必要に応じて自動的にフラッシュをトリガーします。
各操作がフラッシュされると、それはLuceneインデックスに永続的に保存されます。これは、トランザクションログに追加のコピーを維持する必要がないことを意味する場合があります。トランザクションログは世代と呼ばれる複数のファイルで構成されており、Elasticsearchはもはや必要ない世代ファイルを削除し、ディスクスペースを解放します。
フラッシュAPIを使用して1つ以上のインデックスでフラッシュをトリガーすることも可能ですが、ユーザーがこのAPIを直接呼び出す必要があるのは稀です。いくつかのドキュメントをインデックスした後にフラッシュAPIを呼び出すと、成功した応答は、ElasticsearchがフラッシュAPIが呼び出される前にインデックスされたすべてのドキュメントをフラッシュしたことを示します。
Path parameters
<target>
- (オプション、文字列) フラッシュするデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカード(
*
)をサポートします。すべてのデータストリームとインデックスをフラッシュするには、このパラメータを省略するか、*
または_all
を使用します。
Query parameters
allow_no_indices
- (オプション、Boolean)
false
の場合、リクエストは、ワイルドカード式、インデックスエイリアス、または_all
の値が欠落または閉じたインデックスのみをターゲットにする場合にエラーを返します。この動作は、リクエストが他のオープンインデックスをターゲットにしている場合でも適用されます。たとえば、foo*,bar*
をターゲットにするリクエストは、foo
で始まるインデックスがあるが、bar
で始まるインデックスがない場合にエラーを返します。
デフォルトはtrue
です。 expand_wildcards
- (オプション、文字列) ワイルドカードパターンが一致できるインデックスのタイプ。リクエストがデータストリームをターゲットにできる場合、この引数はワイルドカード式が隠されたデータストリームに一致するかどうかを決定します。カンマ区切りの値をサポートします。たとえば、
open,hidden
。有効な値は次のとおりです:all
- すべてのデータストリームまたはインデックスに一致します。隠されたものを含みます。
open
- オープンで非隠されたインデックスに一致します。また、非隠されたデータストリームにも一致します。
closed
- 閉じた非隠されたインデックスに一致します。また、非隠されたデータストリームにも一致します。データストリームは閉じることができません。
hidden
- 隠されたデータストリームと隠されたインデックスに一致します。
open
、closed
、またはその両方と組み合わせる必要があります。 none
- ワイルドカードパターンは受け入れられません。
デフォルトはopen
です。
force
- (オプション、Boolean)
true
の場合、リクエストはインデックスにコミットする変更がない場合でもフラッシュを強制します。デフォルトはfalse
です。
このパラメータを使用してトランザクションログの世代番号を増加させることができます。
このパラメータは内部的なものと見なされます。 ignore_unavailable
- (オプション、Boolean)
false
の場合、リクエストは欠落または閉じたインデックスをターゲットにする場合にエラーを返します。デフォルトはfalse
です。 wait_if_ongoing
- (オプション、Boolean)
true
の場合、フラッシュ操作は、別のフラッシュ操作が実行中のときに実行をブロックします。false
の場合、別のフラッシュ操作が実行中のときにフラッシュをリクエストすると、Elasticsearchはエラーを返します。
デフォルトはtrue
です。
Examples
Flush a specific data stream or index
Python
resp = client.indices.flush(
index="my-index-000001",
)
print(resp)
Ruby
response = client.indices.flush(
index: 'my-index-000001'
)
puts response
Js
const response = await client.indices.flush({
index: "my-index-000001",
});
console.log(response);
Console
POST /my-index-000001/_flush
Flush several data streams and indices
Python
resp = client.indices.flush(
index="my-index-000001,my-index-000002",
)
print(resp)
Ruby
response = client.indices.flush(
index: 'my-index-000001,my-index-000002'
)
puts response
Js
const response = await client.indices.flush({
index: "my-index-000001,my-index-000002",
});
console.log(response);
Console
POST /my-index-000001,my-index-000002/_flush
Flush all data streams and indices in a cluster
Python
resp = client.indices.flush()
print(resp)
Ruby
response = client.indices.flush
puts response
Js
const response = await client.indices.flush();
console.log(response);
Console
POST /_flush