Almost every AI feature that answers questions from your own data needs a place to store embeddings and search them quickly. That place is a vector database, or a vector search feature inside a database you already run. The market now offers dedicated products, open source engines, and extensions for familiar databases, and the marketing for each makes it sound essential. For most startups and SMEs, the right choice is far less dramatic than the vendor pages suggest.
This guide compares three common routes: pgvector inside PostgreSQL, a managed service such as Pinecone, and a dedicated open source engine such as Qdrant. We will look at how to decide, what to measure, and how to avoid rebuilding your retrieval layer six months from now.
An embedding model turns text, images, or other content into a list of numbers. Similar meanings produce similar vectors. A vector database stores those lists and finds the closest ones to a query vector, usually using an approximate nearest neighbour index so searches stay fast as the data grows. Most systems also support metadata filters, so you can ask for "the closest chunks, but only from documents this customer is allowed to see."
That filter requirement is easy to overlook and it drives many architecture decisions. In a business application, similarity alone is rarely enough. You need permissions, tenant boundaries, date ranges, and document types layered on top.
pgvector is an extension that adds vector columns and similarity search to PostgreSQL. If your application already uses Postgres, your embeddings can live next to your users, documents, and permissions in one database. You get transactions, backups, joins, and familiar tooling.
A fully managed vector service removes infrastructure work. You send vectors and metadata through an API and query them. Scaling, replication, and index maintenance are handled for you.
Engines like Qdrant can run in your own cloud or as a hosted service. They offer rich filtering, hybrid search features, and fine control over indexing.
Imagine a 60 person services company building an assistant that answers staff questions from policy documents, project wikis, and past proposals. The content totals a few hundred thousand chunks. Access rules matter: finance documents must be visible only to finance staff, and client files only to the project team.
The team already runs PostgreSQL for its internal tools. With pgvector, they store each chunk with a document ID and an access group, then run a single query that filters by permission and orders by similarity. Updating a document means updating rows in a transaction. Deleting a client's data is a normal delete statement. For a workload of this size, a single well indexed Postgres instance could plausibly handle the traffic comfortably, and the team avoids a second system to secure and monitor.
Now change the scenario. A consumer app wants semantic search across tens of millions of items with heavy concurrent traffic. Here a dedicated engine or managed service becomes more attractive, because specialised indexing and horizontal scaling are the product, not an add-on.
The lesson is simple. Match the tool to the scale and the filtering needs you actually have, not the scale you hope to reach in three years.
Teams often spend weeks comparing vector stores and days on chunking. The ratio should be reversed. How you split documents, which embedding model you use, whether you combine keyword and vector search, and whether you rerank results usually affect answer quality more than the storage engine. Our article on better RAG retrieval with chunking, hybrid search and reranking covers those levers in detail.
It is also worth asking whether you need retrieval at all for your use case. Some problems are better served by prompting or by fine tuning, which we compare in our guide to fine tuning, RAG and prompting.
Costs come from three places: storage and compute for the database, the embedding calls used to build and refresh the index, and the engineering time to keep everything in sync. For illustration, a small collection might fit comfortably on the database you already pay for, which makes pgvector effectively free at the margin. A managed service adds a recurring fee that grows with vectors stored and queries served. A self hosted engine shifts the cost to servers and operations time. These are illustrative comparisons, so request current pricing from each provider and model it against your own volume.
Do not forget re-embedding costs. If you change embedding models later, you must regenerate every vector. Storing the original text and a model version tag with each vector makes that migration manageable.
Start with the simplest store that meets your filtering and latency needs. Move to something more specialised only when a measurement, not a hunch, tells you to.
For most early stage products and SME tools, begin with pgvector if you already run PostgreSQL. It is often enough for a long time, and the operational simplicity is a real advantage. Choose a managed service when your team has no database operations capacity and your collection is large or growing quickly. Choose a dedicated engine such as Qdrant when you need advanced filtering, hybrid search features, or self hosting for data residency. If you need help designing the full pipeline, our AI development services cover retrieval architecture, evaluation, and deployment.
Before you lock in a vendor or architecture, run a two week proof of concept with real documents and real questions from your team. Record how often the correct passage appears in the top five results, how long each query takes, and how much effort it took to keep the index in sync. Share the findings with stakeholders in a short written note. This simple discipline replaces opinion with evidence, and it gives you a baseline to compare against if you later consider switching. It also reveals hidden costs such as ingestion scripts, monitoring dashboards, and access control rules that no pricing page mentions.
The vector database decision matters, but it matters less than most comparison charts imply. Understand your data size, filters, and latency needs, benchmark on your own content, and hide the storage behind a small interface so you can change your mind. Spend the saved effort on retrieval quality and evaluation, because that is what users actually feel. Done this way, your AI feature stays accurate, affordable, and easy to evolve as your product grows.