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 のインデックス登録の概要](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/architecture-queues-add.png?authuser=6&hl=ja)
- </ph>
コンテンツ コネクタでは、
items.push
アイテム(メタデータとハッシュ)をインデックス登録キューに push してアイテムの ステータス(MODIFIED
、NEW_ITEM
、DELETED
)。詳細は以下のとおりです。- push する際、コネクタには push アクションが
type
またはcontentHash
。 - コネクタに
type
が含まれていない場合、Cloud Search 自動的にcontentHash
を使用してアイテムのステータスを判断します。 - アイテムが不明な場合、アイテムのステータスは
NEW_ITEM
に設定されます。 - アイテムが存在し、ハッシュ値が一致する場合、ステータスは
ACCEPTED
のままです。 - アイテムが存在し、ハッシュが異なる場合、ステータスは
MODIFIED
になります。
商品アイテム ステータスの設定方法について詳しくは、 GitHub リポジトリの走査 サンプル コードを Cloud Search スタートガイドのチュートリアル
通常、プッシュはコンテンツ走査や変更検出に関連付けられます。 構成されます。
- push する際、コネクタには push アクションが
コンテンツ コネクタでは、
items.poll
を使用してキューをポーリングし、インデックス登録するアイテムを決定します。Cloud Search はコネクタに インデックス登録が必要なアイテム、最初にステータス コードで並べ替え、 Time-in-Queue(キューインキューの時間)を 定義しますコネクタがリポジトリからこれらのアイテムを取得してインデックスを構築する API リクエスト。
コネクタでは
items.index
アイテムをインデックス登録します。Cloud Search の後にのみ、アイテムがACCEPTED
状態になる アイテムの処理が正常に完了した場合のみです。
コネクタは、アイテムがリポジトリに存在しなくなった場合、そのアイテムを削除することもできます。 まだ変更されていない場合や ソース リポジトリのエラーです。アイテムの削除については、次をご覧ください: できます。
インデックス登録キューを使用したアイテム削除の概要
「 フル走査戦略 2 キューのプロセスを使用してアイテムをインデックスに登録 削除の検出などです図 2 は、 インデックス登録キューなどです。具体的には、図 2 は、2 番目のトラバーサル フル走査戦略を使用します以下の手順では、REST API 呼び出しを使用します。対象 同等の SDK 呼び出しについては、キュー オペレーション(Connector SDK)をご覧ください。
![Google Cloud Search のインデックス登録の概要](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/architecture-queues-delete.png?authuser=6&hl=ja)
初回走査時に、コンテンツ コネクタは
items.push
アイテム(メタデータとハッシュ)をインデックス登録キュー「キュー A」に push するNEW_ITEM
はキューに存在しないためです。各項目にラベルが割り当てられます 「A」「queue A」を検索します。コンテンツが Cloud Search にインデックス登録されます。コンテンツ コネクタでは、
items.poll
キュー A をポーリングしてインデックスに登録するアイテムを決定します。Cloud Search はコネクタに インデックス登録が必要なアイテム、最初にステータス コードで並べ替え、 Time-in-Queue(キューインキューの時間)を 定義しますコネクタがリポジトリからこれらのアイテムを取得してインデックスを構築する API リクエスト。
コネクタでは
items.index
アイテムをインデックス登録します。Cloud Search の後にのみ、アイテムがACCEPTED
状態になる アイテムの処理が正常に完了した場合のみです。「
deleteQueueItems
メソッドが「queue B」で呼び出されます。ただし、キュー B にはアイテムが push されていないため、 削除はできません。2 回目のフル走査では、コンテンツ コネクタが
items.push
は、アイテム(メタデータとハッシュ)をキュー B に push します。- push する際、コネクタには push アクションが
type
またはcontentHash
。 - コネクタに
type
が含まれていない場合、Cloud Search 自動的にcontentHash
を使用してアイテムのステータスを判断します。 - アイテムが不明な場合、アイテムのステータスは
NEW_ITEM
に設定され、キュー 変更されます。 - アイテムが存在し、ハッシュ値が一致する場合、ステータスは
ACCEPTED
のままです。 キューのラベルが「B」に変更されます。 - アイテムが存在し、ハッシュが異なる場合、ステータスは
MODIFIED
になり、キューは 変更されます。
- push する際、コネクタには push アクションが
コンテンツ コネクタでは、
items.poll
を使用してキューをポーリングし、インデックス登録するアイテムを決定します。Cloud Search はコネクタに インデックス登録が必要なアイテム、最初にステータス コードで並べ替え、 Time-in-Queue(キューインキューの時間)を 定義しますコネクタがリポジトリからこれらのアイテムを取得してインデックスを構築する API リクエスト。
コネクタでは
items.index
アイテムをインデックス登録します。Cloud Search の後にのみ、アイテムがACCEPTED
状態になる アイテムの処理が正常に完了した場合のみです。最後に、
deleteQueueItems
キュー A で呼び出され、以前にインデックス付けされた CCloud Search アイテムのうち、 まだキュー「A」があります。指定します。その後のフル走査では、インデックス処理に使用されるキューが 削除に使用されたキューが入れ替わります。
キュー オペレーション(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.push の item.type
フィールド
メソッドを呼び出します。
新しい ID を push すると、NEW_ITEM
を含む新しいエントリが追加されます。
ItemStatus
説明します。
オプションのペイロードは常に保存され、不透明な値として扱われて返されます。
送信者
Items.poll
。
アイテムはポーリングされると予約され、
もう一度呼び出して
Items.poll
。
使用
Items.push
type
NOT_MODIFIED
、REPOSITORY_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_MODIFIED
、REPOSITORY_ERROR
、またはREQUEUE
の値。