Minor note: you only need a vector database if you have so many possible inputs that linear retrieval is too slow.
Arguably, for many use cases (e.g. searching through a document with ~200 passages), loading embeddings in memory and running a simple linear search would be fast enough.