Embedded vector search engine
Top 26.5% on sourcepulse
JVector is an advanced, embedded vector search engine designed for developers and researchers needing efficient approximate nearest neighbor (ANN) search. It offers a flexible, graph-based indexing approach that merges DiskANN and HNSW techniques, enabling fast, accurate, and scalable vector similarity searches, particularly for high-dimensional data.
How It Works
JVector implements a multi-layer graph index, leveraging Vamana (from DiskANN) within each layer, inspired by HNSW's hierarchical structure. It supports non-blocking concurrency for scalable index construction. The design features an in-memory adjacency list for upper layers and an on-disk adjacency list for the bottom layer. It utilizes two-pass search with optional vector compression (Product Quantization, Binary Quantization, Fused ADC) for reduced memory usage and latency while preserving accuracy. A key innovation is its ability to build larger-than-memory indexes using two-pass searches during construction.
Quick Start & Requirements
mvn compile exec:exec@bench
or mvn compile exec:exec@sift
.PhysicalCoreExecutor
is used by default to limit operations to physical core count, configurable via -Djvector.physical_core_count
.Highlighted Details
Maintenance & Community
Licensing & Compatibility
Limitations & Caveats
SimpleMappedReader
for on-disk indexes is limited to 2GB file sizes; MemorySegmentReader
requires Java 22+.PhysicalCoreExecutor
.3 days ago
1 day