Google Cloud Search インデックス登録キュー

Connector SDK と Google Cloud Search API を使用すると、 Indexing Queues:

  • インデックスとリポジトリとの同期を保つために使用できるドキュメントごとの状態(ステータス、ハッシュ値など)を維持する。

  • 走査プロセスで検出されたインデックス登録されるアイテムのリストを維持する。

  • アイテム ステータスに基づいてキュー内のアイテムの優先順位を付ける。

  • チェックポイント、変更トークンなど、効率的に統合するための追加の状態情報を維持する。

キューはインデックス登録済みアイテムに割り当てられたラベル(「デフォルト」など)の (デフォルト キュー、つまり「B」)割り当てられています

ステータスと優先度

キュー内のドキュメントの優先度は、そのドキュメントに ItemStatus できます。考えられる原因は次のとおりです。 ItemStatus コードを優先度順に並べます(最初に処理されるものから最後に処理されるもの)。

  • ERROR - インデックス登録中に非同期エラーが発生し、インデックスに再登録する必要があるアイテム。

  • MODIFIED - 以前にインデックスに登録され、前回のインデックス登録以降にリポジトリ内で変更されたアイテム。

  • NEW_ITEM - インデックスに登録されていないアイテム。

  • ACCEPTED - 以前にインデックスに登録され、 インデックスが作成されます。

キュー内の 2 つのアイテムのステータスが同じ場合、長い時間キューに入っているアイテムの優先度が高くなります。

インデックス登録キューを使用して新規または変更されたアイテムをインデックス登録する方法の概要

図 1 は、インデックス登録を使用して新規または変更されたアイテムをインデックス登録する手順を示しています 表示されます。以下では、REST API 呼び出しについて説明します。同等の SDK 呼び出しについては、 キュー オペレーション(Connector SDK)

Google Cloud Search のインデックス登録の概要
図 1. アイテムを追加または更新するためのインデックス登録の手順
<ph type="x-smartling-placeholder">
    </ph>
  1. コンテンツ コネクタでは、 items.push アイテム(メタデータとハッシュ)をインデックス登録キューに push してアイテムの ステータス(MODIFIEDNEW_ITEMDELETED)。詳細は以下のとおりです。

    • push する際、コネクタには push アクションが type または contentHash
    • コネクタに type が含まれていない場合、Cloud Search 自動的に contentHash を使用してアイテムのステータスを判断します。
    • アイテムが不明な場合、アイテムのステータスは NEW_ITEM に設定されます。
    • アイテムが存在し、ハッシュ値が一致する場合、ステータスは ACCEPTED のままです。
    • アイテムが存在し、ハッシュが異なる場合、ステータスは MODIFIED になります。

    商品アイテム ステータスの設定方法について詳しくは、 GitHub リポジトリの走査 サンプル コードを Cloud Search スタートガイドのチュートリアル

    通常、プッシュはコンテンツ走査や変更検出に関連付けられます。 構成されます。

  2. コンテンツ コネクタでは、 items.poll を使用してキューをポーリングし、インデックス登録するアイテムを決定します。Cloud Search はコネクタに インデックス登録が必要なアイテム、最初にステータス コードで並べ替え、 Time-in-Queue(キューインキューの時間)を 定義します

  3. コネクタがリポジトリからこれらのアイテムを取得してインデックスを構築する API リクエスト。

  4. コネクタでは items.index アイテムをインデックス登録します。Cloud Search の後にのみ、アイテムが ACCEPTED 状態になる アイテムの処理が正常に完了した場合のみです。

コネクタは、アイテムがリポジトリに存在しなくなった場合、そのアイテムを削除することもできます。 まだ変更されていない場合や ソース リポジトリのエラーです。アイテムの削除については、次をご覧ください: 。

インデックス登録キューを使用したアイテム削除の概要

フル走査戦略 2 キューのプロセスを使用してアイテムをインデックスに登録 削除の検出などです図 2 は、 インデックス登録キューなどです。具体的には、図 2 は、2 番目のトラバーサル フル走査戦略を使用します以下の手順では、REST API 呼び出しを使用します。対象 同等の SDK 呼び出しについては、キュー オペレーション(Connector SDK)をご覧ください。

Google Cloud Search のインデックス登録の概要
図 2. アイテムの削除
  1. 初回走査時に、コンテンツ コネクタは items.push アイテム(メタデータとハッシュ)をインデックス登録キュー「キュー A」に push する NEW_ITEM はキューに存在しないためです。各項目にラベルが割り当てられます 「A」「queue A」を検索します。コンテンツが Cloud Search にインデックス登録されます。

  2. コンテンツ コネクタでは、 items.poll キュー A をポーリングしてインデックスに登録するアイテムを決定します。Cloud Search はコネクタに インデックス登録が必要なアイテム、最初にステータス コードで並べ替え、 Time-in-Queue(キューインキューの時間)を 定義します

  3. コネクタがリポジトリからこれらのアイテムを取得してインデックスを構築する API リクエスト。

  4. コネクタでは items.index アイテムをインデックス登録します。Cloud Search の後にのみ、アイテムが ACCEPTED 状態になる アイテムの処理が正常に完了した場合のみです。

  5. deleteQueueItems メソッドが「queue B」で呼び出されます。ただし、キュー B にはアイテムが push されていないため、 削除はできません。

  6. 2 回目のフル走査では、コンテンツ コネクタが items.push は、アイテム(メタデータとハッシュ)をキュー B に push します。

    • push する際、コネクタには push アクションが type または contentHash
    • コネクタに type が含まれていない場合、Cloud Search 自動的に contentHash を使用してアイテムのステータスを判断します。
    • アイテムが不明な場合、アイテムのステータスは NEW_ITEM に設定され、キュー 変更されます。
    • アイテムが存在し、ハッシュ値が一致する場合、ステータスは ACCEPTED のままです。 キューのラベルが「B」に変更されます。
    • アイテムが存在し、ハッシュが異なる場合、ステータスは MODIFIED になり、キューは 変更されます。
  7. コンテンツ コネクタでは、 items.poll を使用してキューをポーリングし、インデックス登録するアイテムを決定します。Cloud Search はコネクタに インデックス登録が必要なアイテム、最初にステータス コードで並べ替え、 Time-in-Queue(キューインキューの時間)を 定義します

  8. コネクタがリポジトリからこれらのアイテムを取得してインデックスを構築する API リクエスト。

  9. コネクタでは items.index アイテムをインデックス登録します。Cloud Search の後にのみ、アイテムが ACCEPTED 状態になる アイテムの処理が正常に完了した場合のみです。

  10. 最後に、 deleteQueueItems キュー A で呼び出され、以前にインデックス付けされた CCloud Search アイテムのうち、 まだキュー「A」があります。指定します。

  11. その後のフル走査では、インデックス処理に使用されるキューが 削除に使用されたキューが入れ替わります。

キュー オペレーション(Connector SDK)

Content Connector SDK は、キューにアイテムを push したり、キューからアイテムを pull したりするオペレーションを提供します。

アイテムをパッケージ化してキューに push するには、pushItems を使用します。 構築できます。

処理のためにキューからアイテムを pull する場合、特別な操作を行う必要はありません。代わりに、SDK が自動的に優先度順にアイテムをキューから pull します。 Deployment の Repository クラスの getDoc メソッドを呼び出します。

キュー オペレーション(REST API)

REST API は、キューにアイテムを push し、キューからアイテムを pull する次の 2 つのメソッドを提供します。

  • アイテムをキューに push するには、Items.push を使用します。
  • キュー内のアイテムをポーリングするには、Items.poll を使用します。

また、 Items.index インデックス登録中にアイテムをキューにプッシュします。期間中にキューに push されたアイテム インデックス付けには type ステータスが自動的に設定されます。 ACCEPTED

Items.push

Items.push メソッドは ID をキューに追加します。このメソッドは、 type push オペレーションの結果を決定します。type 値の一覧については、以下をご覧ください。 宛先: Items.pushitem.type フィールド メソッドを呼び出します。

新しい ID を push すると、NEW_ITEM を含む新しいエントリが追加されます。 ItemStatus できます。

オプションのペイロードは常に保存され、不透明な値として扱われて返されます。 送信者 Items.poll

アイテムはポーリングされると予約され、 もう一度呼び出して Items.poll。 使用 Items.push type NOT_MODIFIEDREPOSITORY_ERROR、または REQUEUE として、un 予約 表示されます。予約済みエントリと未予約エントリの詳細については、 Items.poll セクションをご覧ください。

Items.push(ハッシュ付き)

Google Cloud Search API では、メタデータとコンテンツ ハッシュ値を指定できます。 オン Items.index できます。Pod を手動で type メタデータやコンテンツのハッシュ値 push リクエストで指定できます。Cloud Search Indexing Queue は 指定されたハッシュ値を、 データソースです一致しない場合、そのエントリは MODIFIED とマークされます。対応する アイテムがインデックスに存在しない場合、ステータスは NEW_ITEM です。

Items.poll

Items.poll メソッドは、キューから優先度が最も高いエントリを取得します。リクエストされたデータと 返されたステータス値は、リソースのステータスを または返された ID のステータス。

デフォルトでは、優先度に基づいてキューのいずれかのセクションからエントリが返されます。返される各エントリは予約されており、他のエンティティによって の呼び出し Items.poll 次のどちらかのケースまで対応します

  • 予約がタイムアウトする。
  • エントリが Items.index によって再びキューに追加されます。
  • Items.push 呼び出されると、 type NOT_MODIFIEDREPOSITORY_ERROR、または REQUEUE の値。