- use rust impl redisxann modules
- nmslib - HNSW. rust lib: hnswlib-rs unsupport Dynamic update index; use hnswcore lib, index no save/load, so use redis save/load index/node, more usage_memory
- Faiss HNSW with coarse quantization (eg: IndexHNSWFlat), more detail see faiss wiki. rust lib: faiss-rs
- USearch HNSW (KISS);
note:
- if add node name, need save map (node_name<>node_id) kv, use rust hashmap, more memory;
- if just add node id, id from Biz~, KISS. node meta info and node vector store separately.
- rapids RAFT/cuvs VS on GPU, bind c/c++/rust ;
- create index:
usearch.index.create indexName [algo_param_key algo_param_value]
- get index:
usearch.index.get indexName
- del index:
usearch.index.del indexName
- add node:
usearch.node.add indexName nodeName nodeVector
- add vector:
usearch.node.add_id indexName vectorId dataVector
- get node:
usearch.node.get indexName nodeName
- get vector:
usearch.node.get_id indexName vectorId
- del node:
usearch.node.del indexName nodeName
- del vector:
usearch.node.del_id indexName vectorId
- kann search:
usearch.search.kann indexName topK queryVector [filter_string] [param_key param_value]
- python: redisx-py
- implement cross modal image text retrieval
- implement approximate query for molecular geometries
- implement Geo Spatial Indexing
- "Efficient and Robust approximate nearest neighbours using Hierarchical Navigable Small World Graphs" (2016,2018) arxiv
- https://www.youtube.com/watch?v=QvKMwLjdK-s
- https://www.youtube.com/watch?v=O98rSsuDBl8
- https://github.com/weedge/doraemon-nb/blob/main/faiss_hnsw.ipynb
- https://github.com/weedge/doraemon-nb/blob/main/faiss_composite_indexes.ipynb
- https://github.com/weedge/doraemon-nb/blob/main/faiss_lsh.ipynb
- https://weedge.github.io/post/oneday/similarity-search/1.knn-inverted-file-index/
- https://github.com/unum-cloud/usearch/blob/main/docs/benchmarks.md
- https://rapids.ai/cuvs/