Prompt
What should I use for vector search if I expect frequent document edits?
Latest observation
If you expect frequent document edits, the best choice is usually a vector database or search system that supports efficient updates/upserts and deletes without full reindexing.
Good options
-
Postgres + pgvector
Best if you want simplicity and your scale is moderate.- Easy to update embeddings per row
- Good for apps where documents change often
- Also nice if you already use Postgres for metadata
-
OpenSearch / Elasticsearch (kNN / vector search)
Good if you need hybrid search plus frequent updates.- Supports document updates/deletes well
- Works well when combining keyword + vector retrieval
-
Qdrant
Strong choice for frequent edits.- Designed for upserts and payload filtering
- Good operationally for changing data
- Often simpler than heavier search stacks
-
Weaviate
Also supports updates well and is convenient if you want a full vector DB with metadata filtering.
What to avoid if edits are very frequent
Some ANN systems are optimized more for mostly-static data and can be awkward if you’re constantly changing vectors at high volume. In those cases, choose a system that handles:
- upserts
- deletes
- metadata sync
- incremental re-embedding
Practical recommendation
- Small/medium app, lots of edits:
Postgres + pgvector - Need hybrid keyword + vector search:
OpenSearchorElasticsearch - Purpose-built vector DB with frequent updates:
Qdrant
One important design tip
If documents are edited often, store:
- a stable document ID
- chunk IDs
- embedding version
- last-updated timestamp
Then on edit, re-embed only the changed chunks instead of the whole document.
If you want, I can also recommend the best option based on your expected scale, latency, and whether you need hybrid search.