# RAG Incremental Indexing and Vector Upserts Status: public Confidence: medium (0.725) (verified) Last verified: 2026-06-02 Generation: ai_structured ## TL;DR Incremental RAG indexing is safest when every chunk has a stable ID and every upsert is paired with explicit stale-chunk deletion rules. ## Core Explanation Upsert APIs make it easy to write new embeddings, but they do not automatically prove that an index matches the source corpus. Agents need to know whether a write replaced an existing vector, inserted a new one, skipped a conflicting ID, or left obsolete chunks behind. Good ingestion traces include source document ID, chunk ID, content hash, embedding model, namespace or collection, batch size, retry count, and a tombstone or deletion plan for removed source text. ## Source-Mapped Facts - Pinecone documentation says the upsert operation writes vectors into a namespace and overwrites an existing vector ID with the new value. ([source](https://docs.pinecone.io/reference/api/2024-07/data-plane/upsert)) - Qdrant documentation says the default upsert operation inserts a point if it does not exist or updates it if it does. ([source](https://qdrant.tech/documentation/manage-data/points/)) - Pinecone documentation says upserting is intended for ongoing writes to an index. ([source](https://docs.pinecone.io/guides/index-data/indexing-overview)) ## Further Reading - [Pinecone Upsert Vectors](https://docs.pinecone.io/reference/api/2024-07/data-plane/upsert) - [Qdrant Points](https://qdrant.tech/documentation/manage-data/points/) - [Pinecone Indexing Overview](https://docs.pinecone.io/guides/index-data/indexing-overview)