该项目是一个 C++ 向量相似度引擎,实现了分层可导航小世界(HNSW)算法。它提供了一个仅包含头文件的库,用于在高维空间中执行近似最近邻搜索,并附带 Python 绑定,将这些索引和搜索功能暴露给数据科学环境。
nmslib/hnsw 的主要功能包括:Vector Similarity Search, Low-Latency Vector Retrieval, Approximate Nearest Neighbor Search, Proximity Graph Indexes, Vector Indexing, HNSW Indexes, Vector Distance Metrics, Disk-Persistent Data Structures。
nmslib/hnsw 的开源替代品包括: nmslib/hnswlib — hnswlib is a header-only C++ library and vector indexing engine designed for high-dimensional approximate nearest… unum-cloud/usearch — USearch is a high-performance vector similarity search engine and approximate nearest neighbor index designed for… lancedb/lancedb — LanceDB is a vector database and columnar data store designed to function as a versioned dataset manager and vector… microsoft/sptag — SPTAG is a vector approximate nearest neighbor search library and distributed vector search engine. It provides a… redisearch/redisearch — RediSearch is a Redis module that adds secondary indexing, full-text search, aggregation, and vector similarity search… redis/go-redis — This project is a feature-rich Go client library designed for interacting with Redis. It serves as a comprehensive…
hnswlib is a header-only C++ library and vector indexing engine designed for high-dimensional approximate nearest neighbor search. It organizes large collections of embeddings into a searchable graph structure to enable rapid proximity queries and distance calculations. The system utilizes Hierarchical Navigable Small World graphs to achieve fast vector similarity search. It distinguishes itself by allowing the definition of custom distance metrics and similarity functions to adapt calculations to specific data requirements. The engine covers the full indexing lifecycle, including incrementa
USearch is a high-performance vector similarity search engine and approximate nearest neighbor index designed for dense embeddings. It functions as a low-level vector database core and high-dimensional vector indexer, providing the primitives necessary to store and retrieve vectors across massive datasets. The engine distinguishes itself through hardware-level SIMD acceleration for distance kernels and a proximity-graph indexing system that enables fast retrieval across billions of vectors. It supports multi-precision vector quantization to balance memory usage and accuracy, and utilizes memo
LanceDB is a vector database and columnar data store designed to function as a versioned dataset manager and vector search engine. It serves as a high-performance backend for indexing and retrieving high-dimensional embeddings, providing the foundation for machine learning data pipelines. The system distinguishes itself through a combination of cloud-native object storage and immutable version tracking, allowing for data time-travel and reproducible AI experiments. It integrates hybrid search capabilities, merging dense vector similarity with BM25 full-text search and SQL-like scalar filters
SPTAG is a vector approximate nearest neighbor search library and distributed vector search engine. It provides a large-scale vector index designed to organize and retrieve similar vectors from massive datasets using high-performance similarity search and proximity queries. The system functions as a dynamic vector index manager, supporting incremental updates, insertions, and deletions of vectors without requiring a full index rebuild. It scales search operations across multiple machines to handle large-scale datasets and high volumes of online requests through distributed search request hand