リフレッシュAPI

リフレッシュは、1つ以上のインデックスで実行された最近の操作を検索可能にします。データストリームの場合、APIはストリームのバックインデックスでリフレッシュ操作を実行します。リフレッシュ操作の詳細については、近リアルタイム検索を参照してください。

Python

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

Ruby

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

Js

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

コンソール

  1. POST /my-index-000001/_refresh

リクエスト

POST <target>/_refresh

GET <target>/_refresh

POST /_refresh

GET /_refresh

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、ターゲットデータストリーム、インデックス、またはエイリアスに対してmaintenanceまたはmanage インデックス特権を持っている必要があります。

説明

リフレッシュAPIを使用して、最後のリフレッシュ以降に1つ以上のインデックスで実行されたすべての操作を明示的に検索可能にします。リクエストがデータストリームをターゲットにしている場合、ストリームのバックインデックスをリフレッシュします。

デフォルトでは、Elasticsearchはインデックスを毎秒定期的にリフレッシュしますが、過去30秒以内に1回以上の検索リクエストを受け取ったインデックスのみです。このデフォルトの間隔は、index.refresh_interval設定を使用して変更できます。

リフレッシュリクエストは同期的で、リフレッシュ操作が完了するまで応答を返しません。

リフレッシュはリソースを多く消費します。クラスターのパフォーマンスを確保するために、可能な限り明示的なリフレッシュを行うのではなく、Elasticsearchの定期的なリフレッシュを待つことをお勧めします。

アプリケーションのワークフローがドキュメントをインデックスし、その後インデックスされたドキュメントを取得するために検索を実行する場合、refresh=wait_forのクエリパラメータオプションを使用することをお勧めします。このオプションは、インデックス操作が検索を実行する前に定期的なリフレッシュを待つことを保証します。

パスパラメータ

  • <target>
  • (オプション、文字列) リクエストを制限するために使用されるデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカード(*)をサポートします。すべてのデータストリームとインデックスをターゲットにするには、このパラメータを省略するか、*または_allを使用します。

クエリパラメータ

  • allow_no_indices
  • (オプション、ブール値) falseの場合、リクエストは、ワイルドカード式、インデックスエイリアス、または_allの値が欠落または閉じたインデックスのみをターゲットにする場合にエラーを返します。この動作は、リクエストが他のオープンインデックスをターゲットにしている場合でも適用されます。たとえば、foo*,bar*をターゲットにするリクエストは、インデックスがfooで始まるがbarで始まるインデックスがない場合にエラーを返します。
    デフォルトはtrueです。
  • expand_wildcards
  • (オプション、文字列) ワイルドカードパターンが一致できるインデックスのタイプ。リクエストがデータストリームをターゲットにできる場合、この引数はワイルドカード式が隠されたデータストリームに一致するかどうかを決定します。カンマ区切りの値(open,hiddenなど)をサポートします。有効な値は次のとおりです:
    • all
    • すべてのデータストリームまたはインデックスに一致し、隠されたものも含まれます。
    • open
    • オープンで非隠されたインデックスに一致します。また、非隠されたデータストリームにも一致します。
    • closed
    • 閉じた非隠されたインデックスに一致します。また、非隠されたデータストリームにも一致します。データストリームは閉じることができません。
    • hidden
    • 隠されたデータストリームと隠されたインデックスに一致します。openclosed、またはその両方と組み合わせる必要があります。
    • none
    • ワイルドカードパターンは受け入れられません。
      デフォルトはopenです。
  • ignore_unavailable
  • (オプション、ブール値) falseの場合、リクエストは欠落または閉じたインデックスをターゲットにする場合にエラーを返します。デフォルトはfalseです。

複数のデータストリームとインデックスをリフレッシュ

Python

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

Ruby

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

Js

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

コンソール

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

クラスター内のすべてのデータストリームとインデックスをリフレッシュ

Python

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

Ruby

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

Js

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

コンソール

  1. POST /_refresh