list-vectors 操作を使うと、ページ分割したリクエストで Vectorize インデックス内のすべてのベクトル識別子を列挙できます。このガイドでは、この操作を効率よく使うためのベストプラクティスを説明します。
list-vectors は、次の用途に使います。
- 一括操作: インデックス内のすべてのベクトルを処理する
- 監査: インデックスの内容を確認する、またはレポートを生成する
- データ移行: インデックス間、またはシステム間でベクトルを移す
- クリーンアップ: 古いベクトルを特定して削除する
list-vectors 操作は、カーソルベースのページ分割を使い、一貫性を保証します。
返されるベクトル識別子は、最初の list-vectors リクエスト時点で取得したインデックスのスナップショットに属します。反復中にインデックスが変更されても、ページ分割の一貫性を保てます。
- 新しいベクトル: 最初のリクエストより後に挿入したベクトルは、以降のページ分割結果に現れません
- 削除したベクトル: 最初のリクエストより後に削除したベクトルは、ページ分割が完了するまで残りのレスポンスに現れ続けます
最近追加または削除したベクトルを見るには、新しい list-vectors リクエスト系列を(カーソルなしで)始める必要があります。これにより、インデックスの新しいスナップショットを取得します。
各レスポンスには次が含まれます。
count: このレスポンスで返したベクトル数totalCount: インデックス内のベクトル総数isTruncated: さらにベクトルがあるかどうかnextCursor: 次ページのカーソル(結果がない場合は null)cursorExpirationTimestamp: カーソルの有効期限のタイムスタンプvectors: ベクトル識別子の配列
カーソルには有効期限のタイムスタンプがあります。カーソルが期限切れになった場合は、新しい list-vectors リクエスト系列を始めて、ページ分割を続けます。
連続するリクエストの間隔を十分に取り、レート制限に達しないようにします。
インデックス内のすべてのベクトルを処理する、典型的なパターンです。
# Start iteration
wrangler vectorize list-vectors my-index --count=1000
# Continue with cursor from response
wrangler vectorize list-vectors my-index --count=1000 --cursor="<cursor-from-response>"
# Repeat until no more results