Flush API

1つ以上のデータストリームまたはインデックスをフラッシュします。

Python

  1. resp = client.indices.flush(
  2. index="my-index-000001",
  3. )
  4. print(resp)

Ruby

  1. response = client.indices.flush(
  2. index: 'my-index-000001'
  3. )
  4. puts response

Js

  1. const response = await client.indices.flush({
  2. index: "my-index-000001",
  3. });
  4. console.log(response);

Console

  1. 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
    • 隠されたデータストリームと隠されたインデックスに一致します。openclosed、またはその両方と組み合わせる必要があります。
    • 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

  1. resp = client.indices.flush(
  2. index="my-index-000001",
  3. )
  4. print(resp)

Ruby

  1. response = client.indices.flush(
  2. index: 'my-index-000001'
  3. )
  4. puts response

Js

  1. const response = await client.indices.flush({
  2. index: "my-index-000001",
  3. });
  4. console.log(response);

Console

  1. POST /my-index-000001/_flush

Flush several data streams and indices

Python

  1. resp = client.indices.flush(
  2. index="my-index-000001,my-index-000002",
  3. )
  4. print(resp)

Ruby

  1. response = client.indices.flush(
  2. index: 'my-index-000001,my-index-000002'
  3. )
  4. puts response

Js

  1. const response = await client.indices.flush({
  2. index: "my-index-000001,my-index-000002",
  3. });
  4. console.log(response);

Console

  1. POST /my-index-000001,my-index-000002/_flush

Flush all data streams and indices in a cluster

Python

  1. resp = client.indices.flush()
  2. print(resp)

Ruby

  1. response = client.indices.flush
  2. puts response

Js

  1. const response = await client.indices.flush();
  2. console.log(response);

Console

  1. POST /_flush