Skip to content

redisx-pro/RedisXANN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

licence

RedisXAnn

  • use rust impl redisxann modules

Support ANN algorithm feature lib

  • 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:
    1. if add node name, need save map (node_name<>node_id) kv, use rust hashmap, more memory;
    2. 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 ;

CMD

  • 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]

SDK

Cases

  1. implement cross modal image text retrieval
  2. implement approximate query for molecular geometries
  3. implement Geo Spatial Indexing

Reference

  1. "Efficient and Robust approximate nearest neighbours using Hierarchical Navigable Small World Graphs" (2016,2018) arxiv
  2. https://www.youtube.com/watch?v=QvKMwLjdK-s
  3. https://www.youtube.com/watch?v=O98rSsuDBl8
  4. https://github.com/weedge/doraemon-nb/blob/main/faiss_hnsw.ipynb
  5. https://github.com/weedge/doraemon-nb/blob/main/faiss_composite_indexes.ipynb
  6. https://github.com/weedge/doraemon-nb/blob/main/faiss_lsh.ipynb
  7. https://weedge.github.io/post/oneday/similarity-search/1.knn-inverted-file-index/
  8. https://github.com/unum-cloud/usearch/blob/main/docs/benchmarks.md
  9. https://rapids.ai/cuvs/