A vector database stores embeddings and serves similarity queries as a running service.
It is what you graduate to when a library inside your process stops being enough.
Pinecone, Weaviate, Qdrant, Milvus, Chroma and pgvector are the usual candidates.
The core operation is the same nearest-neighbour search a library would do.
What you are buying is everything around it.
Persistence, so the index survives a restart.
Updates, so a document can be added or deleted without rebuilding everything.
Metadata filtering, so search can be limited by date, owner, language or type.
That filtering is more valuable than it sounds and awkward to bolt on yourself.
Combining a filter with an approximate index is genuinely difficult to do well.
They also handle scaling, replication, backups and access control.
pgvector deserves a look first if you already run Postgres, since one database is simpler than two.
It is entirely adequate up to a few million vectors.
A dedicated service earns its place at larger scale or with heavy query volume.
The embedding model matters far more to quality than which database you pick.