RAG Freshness

RAGの更新を止めない|source revision・upsert・index versionを分ける【2026】

社内文書が更新・削除された後もRAGが古い内容を返し続けないために、source revision、chunk ID、upsert、削除、index versionをどう分けるか。Cloudflare Vectorizeの更新特性を踏まえて解説します。

古野光太朗古野光太朗·2026.09.09·一次情報 6件
文書の改訂履歴をsource revision、upsert、index versionへ分けて更新するRAG基盤図

RAG(検索拡張生成)を社内文書へつなぐと、モデルの知識を更新しなくても回答へ根拠を渡せます。しかし、規程を改訂した、契約書を差し替えた、公開を取り消した後に、古いchunkが検索され続ければ、もっともらしいが期限切れの回答を返します。検索精度だけでなく、更新と削除をどう追跡するかが運用品質を左右します。

結論は、原本を正本にし、ベクトル索引を派生データとして扱うことです。文書ごとのsource revision、chunk ID、embedding model、索引versionを分け、更新はupsert、不要なchunkは削除、embeddingの互換性が変わるときは新しいindexへ切り替えます。一度の再索引で全部を直そうとしない方が、原因調査と安全な復旧をしやすくなります。

RAGの回答は、原本ではなく検索時点の候補である

RAGの原論文は、言語モデルに外部の非パラメトリックな記憶を検索で与える方法を扱い、知識更新と出典提示を課題として挙げています。実務でも、ベクトルDBは文書管理システムの置き換えではありません。原本の版、公開状態、保持期限、閲覧権限をベクトルだけに閉じ込めると、更新漏れを検出できなくなります。

そこで原本側に、少なくともdocument ID、revision、公開状態、更新時刻を持ちます。分割したchunkにはdocumentId:revision:chunkNoのような安定したIDと、原本を参照する値を持たせます。回答時には、検索で得た候補のrevisionと原本の現行revisionを照合し、古い候補なら採用しません。全文を毎回取り直す必要はありませんが、「索引にあるから現行」とは扱わないことが大切です。

更新を四つの状態に分ける

文書更新を「再埋め込みする」という一語で扱うと、失敗時の復旧が曖昧になります。次の四つに分けます。

  1. 原本変更の検知:更新・削除・公開停止を原本から検知し、document IDと新revisionを記録する。
  2. chunk生成とembedding:新revisionを分割し、chunkごとに内容、生成日時、embedding modelを記録する。
  3. 索引反映:同じvector IDをupsertして、値とmetadataを新revisionへ完全に置き換える。Cloudflare Vectorizeのupsertは既存vectorの値とmetadataをマージせず、全体を置換します。
  4. 読取り側の切替:少数の検証queryと原本照合を通してから、新revisionを検索対象として扱う。削除・非公開は原本照合で先に除外し、索引削除の完了を待つ間も露出させない。

Cloudflare Vectorizeのupsertは非同期で、query可能になるまで通常は数秒かかるとされています。更新要求が成功した直後に検索して旧結果が出ても、直ちにデータ破損とは限りません。固定時間だけ待つのではなく、対象documentのrevisionを含む検証queryを用意し、反映確認とタイムアウト時の再調査を分けます。

upsertは便利だが、削除と再分割を代替しない

同じvector IDのupsertは、前の値とmetadataを置換します。これは文言修正や同じ区切りの更新には向きます。一方、見出し追加でchunk数が増減した、PDF全体を差し替えた、文書を非公開にした場合は、旧chunkを残したまま新chunkだけを追加すると、検索結果に旧版が混ざります。

原本のrevisionごとに「期待するchunk IDの集合」を保存し、再索引後に索引側との差を確認します。削除対象は原本で先に無効化し、ベクトル削除は後続jobとして確実に処理します。大量更新を一件ずつ送るより、Vectorizeが推奨するバッチで入れる方が、書込みをまとめてreadへ見えるまでの遅延を抑えやすくなります。ただしバッチ化は鮮度保証ではなく、失敗単位と再実行単位を大きくする側面もあります。

embeddingの互換性が変わるならindex versionを分ける

indexのdimensionと距離metricは作成後に変更できません。embedding modelを変え、次元数や意味空間の前提が変わるなら、既存indexへ混在させず、新しいindex versionを作ります。原本のrevisionとindex versionは別物です。前者は文書内容の変化、後者は検索基盤の互換性を表します。

安全な切替は、旧indexを残したまま新indexへ全量を作り、代表queryで原本・revision・出典を確認してから、読取り先を一度に切り替える形です。読み取り先の切替後も、旧indexの削除は監査・rollback期間とデータ保持方針を確認してから行います。二重書込みを恒久化する必要はありません。移行の目的と終了条件が明確な短期間だけに限定します。

監視するのは類似度だけではない

類似度の高い候補が返ることは、最新の正本が返ったことを意味しません。運用では、原本の更新件数、索引成功・失敗件数、未反映revision数、削除待ちchunk数、検索結果の原本照合失敗数を追います。これらをrequest IDやjob IDと結べば、いつの原本がどの索引処理で止まったかを調査できます。

更新処理は長くなるため、受付と再試行はCloudflare Queuesの設計、会話単位の二重起動はDurable Objectsによる同時実行制御、障害の横断追跡はAIエージェントの可観測性設計と分けると、責務が明確になります。

実装前チェックリスト

限界:索引が新しくても回答の正しさは保証されない

索引を最新化しても、検索queryが不適切、chunk分割が悪い、原本そのものが誤っている、モデルが根拠を誤読する、といった問題は残ります。RAGは正解を保証する機能ではなく、回答に使う候補と出典へ到達しやすくする仕組みです。高リスクな判断では、回答に原本へのリンクとrevisionを示し、人が正本を確認できるようにします。

また、索引更新の速度や制約は製品・プラン・データ量で変わります。本文の設計はCloudflare Vectorizeの2026年9月9日時点の公開資料を前提とし、実装前には最新のlimitsと変更履歴を確認してください。

AI基盤設計・セキュリティ相談

社内文書をAI検索へ接続する際の更新設計、出典表示、運用監視を整理したい方は、AI基盤設計・セキュリティ相談をご利用ください。

一次情報と確認範囲

機関・資料確認した範囲URL
Lewis et al. / NeurIPSRAGの外部記憶、知識更新・provenanceの課題Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
Cloudflare Vectorizeupsertの非同期性、同一IDの完全置換、query APIVectorize API
Cloudflare Vectorizeinsert/upsert、metadata、バッチ更新とread可視化Insert vectors
Cloudflare Vectorizeindex設定が作成後に変更できないことCreate indexes
Cloudflare Vectorizevector変更がquery可能になるまでの遅延改善Vectorize Changelog
Cloudflare Vectorizemetadata filter、namespace、metadata indexの制約Metadata filtering

一次情報と確認範囲

確認日:2026年9月9日。製品仕様・制度は更新されるため、導入時はリンク先の最新版を再確認してください。海外の制度・職業規範は日本へ直接適用せず、相違点と限界を本文に明記しています。

  1. RAGは外部の非パラメトリック記憶を検索で用い、知識更新とprovenanceは課題である
  2. Vectorizeのupsertは非同期で、同一IDの値とmetadataを完全に置換する
  3. Vectorizeは更新をまとめて処理し、バッチがreadへの可視化時間を短縮し得る
  4. indexのdimensionとdistance metricは作成後に変更できない
  5. Vectorizeの2026-07変更では、vector変更のquery可能化は中央値30秒未満、p99二分未満と説明されている
  6. metadata filterはvector検索前に適用され、metadata index作成前のvectorには後から反映されない
古野光太朗
古野光太朗 / 株式会社TechWorker 代表取締役 CEO兼CTO

上場企業を含む37社・2,500名の生成AI導入・研修支援で得た実務知をもとに、導入・運用・顧客理解を扱っています。この実績はTechWorkerの生成AI支援実績であり、個別製品の導入実績を示すものではありません。

RAGの更新設計を本番運用へ落とす

source revision、差分upsert、index version、切替とrollbackを一体で設計します。

AI基盤設計を相談する
← AI基盤ラボの記事一覧に戻る