- Store vector data indexed by Faiss in RocksDB.
- Multiple Faiss indexes can be maintained.
- Set, Delete, Search operations are supported.
- Simple replication is supported.
- Faiss indexes are always sync with local storage to restart process quickly.
- Provides gRPC based client I/F, so easy to develop clients.
Faiss is one of the most advanced ANN (approximate nearest neighbor) search library. However, Faiss is fundamentally designed to working on memory, so it requires complicated ID management and data perpetuation by low layer programing language to using for search platform.
- Connect to PRIMARY faissdb node.
- Call set() with
uniqkey
,vector
andcollectionNames
. collectionNames is optional. - faissdb associate
uniqkey
and inner ID by searchinguniqkey
from stored data or generate for newuniqkey
and store the association. - faissdb add the vector with ID to "main" Faiss index and other indexes specifed by collectionNames.
- Finally, add oplog for replication.
Almost same as Set.
- Connect to PRIMARY or SECONDARY faissdb node.
- Call search() with
number of result
,vector
andcollectionName
. collectionNames is optional. - faissdb search from "main" or specified Faiss index, will obtain IDs and distances as a result. And get
uniqkey
by ID from assciation. - faissdb returns
distances
anduniqkeys
- Call gRPC directly. feature.proto
- nodejs