If you are just getting into this tech, like me, then this article leads down the rabbit hole of different index types supported in different vector stores. Most easy-to-use vector stores only use HNSW indices, which is "good enough".<p>A few offer different types of indices. Milvus[1] and FAISS[2] are a couple that support IVF indices. It's great to see another lightweight tool that does this with GPU acceleration.<p>1. <a href="https://objectbox.io/vector-database/" rel="nofollow noreferrer">https://objectbox.io/vector-database/</a><p>2. <a href="https://www.pinecone.io/learn/series/faiss/vector-indexes/" rel="nofollow noreferrer">https://www.pinecone.io/learn/series/faiss/vector-indexes/</a>
They do predicate pushdown for filtering too. Noice! <a href="https://lancedb.github.io/lance/read_and_write.html#filter-push-down" rel="nofollow noreferrer">https://lancedb.github.io/lance/read_and_write.html#filter-p...</a>
LanceDB is one of the few options for embeddable vector databases, and I have used it in my Electron application. If they could choose a less confusing npm package name than "vectordb," maybe I would be more forgiving towards them. Moreover, the documentation for LanceDB is also poorly written.