There are probably more performant options, but for universality, you are best off going with a popular SQL DB that has vector extensions or support. SQLLite is another option if you want even more portability.
I haven't looked into SQLite and such, but many of the other SQL type of options were not good last I checked. And it takes quite a bit of effort to dig through them because all of these will show research that puts themselves as the best lol.
Has vector embedding columns out of the box.
I then have a small python script to run a vector similarity algo like cosine similarity or whatever. It's not the fanciest or most efficient, but it works surprisingly well.
I use it to search/rank my own blog posts (~300+) for relevancy. So the entire thing is only like 10mb. Probably will get super slow for really large dataasets
Shameless plug: https://github.com/jankovicsandras/plpgsql_bm25
BM25 search implemented in PL/pgSQL, there's also an example of Hybrid (BM25+pgvector) search in the repo.
You can also use faiss if you want it all in memory at all times and have the RAM to support it.
What's your use case and the volume of vectors you want to look up?
Always fascinated to hear why people are using vector DBs, especially outside AI embeddings
fromDocuments -> VectorStoreIndex -> asQueryEngine it will be in-memory.
Easily add pgvector as other recommend here when/if you need to persist embedded data.