ベクトルの更新・削除

ベクトルの更新(update)

目的 ポイント 典型的なコード例(Python SDK)
既存レコードの一部だけ書き換える update()ID が存在するかを検証せず、見付からなくても 200 OK を返す(サイレント)
・値を全⾯置換したい場合は upsert() を使用

1.1 密ベクトル値を差し替える

ベクトル次元は元と同じである必要があります。

python
index.update( id="id-3", values=[4.0, 2.0], # 新しい dense ベクトル namespace="example-namespace" )

docs.pinecone.io

1.2 疎ベクトル値を差し替える

indicesvalues のペアで追加または上書きを行います。

python
index.update( id="id-3", sparse_values={"indices": [2, 6], "values": [0.5, 0.5]}, namespace="example-namespace" )

docs.pinecone.io

1.3 メタデータのみ更新する

未指定のキーはそのまま残り、指定したキーは追加または上書きされます。

python
index.update( id="id-3", set_metadata={"type": "web", "new": True}, namespace="example-namespace" )

docs.pinecone.io

1.4 ベクトル値とメタデータを同時に更新

valuesset_metadata を同時指定すると原子的に処理されます。

python
index.update( id="id-3", values=[5.0, 3.0], set_metadata={"genre": "comedy"}, namespace="example-namespace" )

docs.pinecone.io

課⾦モデル
更新は「書き込みユニット」に計上されるため、大量更新ではコストが増えます。広範囲に変更がある場合は 削除+再 upsert や新規 namespace への再投入を検討してください。


ベクトルの削除(delete)

方法 特徴 典型的なコード例(Python SDK)
ID 指定 最も効率的。ID が分かるピンポイント削除に推奨 index.delete(ids=["id-1", "id-2"], namespace="example")
メタデータ filter 指定 条件に合うレコードを一括削除。filter 構文は検索と同じ index.delete(filter={"genre": {"$eq": "documentary"}}, namespace="example")
namespace 内全削除 delete_all=True を指定すると namespace 内を空にするが、namespace 自体は残る index.delete(delete_all=True, namespace="example")

docs.pinecone.io

2.1 namespace/index の丸ごと削除

  • namespace 削除: Delete a namespace エンドポイントを使用。

  • index 削除: Delete index で全データ+設定を同時に廃棄。再作成には create_index() が必要。

2.2 一貫性と可視性

Pinecone は イベントチュアル・コンシステンシー です。削除・更新直後はクエリに古いベクトルが短時間残る場合があります。describe_index_stats()dataFreshness を確認し、処理完了を待つのが確実です。docs.pinecone.io

注意点
削除は元に戻せません。誤削除対策として、

  1. 元ベクトルIDを別ストレージにバックアップ

  2. 大胆な削除はまずステージング環境で検証
    を推奨します。


運用上のベストプラクティスまとめ

シナリオ 推奨手順
一部メタデータを付け替える update(set_metadata=…) で小規模変更
全文書の内容を差し替える delete(ids=…) → 新内容を upsert()
大量レコードの定期的なクレンジング metadata filter で削除 or 新 namespace へ再投入し、旧 namespace を削除
オンライン更新による整合性維持 更新/削除直後は検索結果に「残留」するため、API で dataFreshness を監視し完了後に本番トラフィックを切替

これで Pinecone におけるベクトルの更新・削除の要点と実装例を網羅しました。運用フェーズでは コスト・整合性・ロールバック手順 の 3 点を常に確認することが安定稼働の鍵となります。

ChatGPT4o 生成日:2025/06/20