iRangeGraph
iRangeGraph is an ANN indexing approach and accompanying implementation for range-filtering nearest neighbor search. It provides a specialized graph-based index that supports vector similarity search under range constraints, making it directly useful as a component or reference implementation for advanced vector database indexing and retrieval.
About this tool
iRangeGraph
Category: SDKs & Libraries
Tags: ann, graph-index, similarity-search
Source: https://github.com/YuexuanXu7/iRangeGraph
Overview
iRangeGraph is a graph-based Approximate Nearest Neighbor (ANN) indexing method and reference implementation tailored for range-filtering nearest neighbor search. It builds a specialized graph index over vector data that are ordered by an attribute, enabling efficient similarity search under attribute range constraints.
Implementation corresponds to the paper: “iRangeGraph: Improvising Range-dedicated Graphs for Range-filtering Nearest Neighbor Search” (arXiv:2409.02571).
Features
-
Range-filtering ANN search
- Supports nearest neighbor search with explicit range constraints on an attribute.
- Designed for single-attribute range-filtered queries over sorted data.
-
Graph-based index structure
- Constructs a range-dedicated graph index over the dataset.
- Configurable graph degree via
--M(controls connectivity / out-degree of nodes). - Uses
--ef_constructionto control the size of the candidate/result set during index building.
-
Binary data format support
- Expects data in
.binformat:- First 4 bytes: number of points (int).
- Next 4 bytes: dimensionality (int).
- Following
n * d * sizeof(float)bytes: contiguous float vectors (one data point at a time).
- Data must be sorted in ascending order by the range attribute.
- Expects data in
-
Index construction CLI
- Build-time parameters:
--data_path– path to input dataset in the specified.binlayout.--index_file– output path for the constructed graph index in.binformat.--M– graph degree.--ef_construction– search breadth during index construction.--threads– number of threads for parallel index building.
- Build-time parameters:
-
Single-attribute search CLI
- Query-time parameters:
--data_path– path to the underlying data (same.binformat used to build the index, sorted by attribute).--query_path– queries in.binformat using the same header + vector layout.--range_saveprefix– directory prefix where query range files will be saved; uses numeric codes (0–9) to denote different query range fractions.
- Supports batch query execution from file.
- Query-time parameters:
-
CMake-based build
- Uses
CMakeLists.txtfor configuration and build. - C++ implementation with
include/andtests/directories for headers and test code.
- Uses
-
Research reference implementation
- Repository includes a
technical_report.pdfwith additional algorithmic and experimental details. - Licensed via the included
LICENSEfile (open-source; see repository for exact terms).
- Repository includes a
Typical Workflow
- Prepare data in the required
.binlayout and sort it ascending by the attribute used for range filtering. - Build the index using the index construction command with
--data_path,--index_file,--M,--ef_construction, and--threads. - Run range-filtered ANN queries by supplying
--data_path,--query_path, and--range_saveprefixfor single-attribute search.
Pricing
This is an open-source library hosted on GitHub. No pricing information or paid plans are specified in the available content.
Loading more......
Information
Categories
Tags
Similar Products
6 result(s)NSG is an approximate nearest neighbor search algorithm based on a sparse navigable graph structure designed for high-dimensional vector similarity search. The reference implementation provides a graph-based ANN index that can be integrated into custom vector retrieval systems.
Ruby gem for approximate nearest neighbor search that can integrate with pgvector and other backends to power vector similarity search in Ruby applications.
Reconfigurable Inverted Index (Rii) is a research project and open-source library for approximate nearest neighbor and similarity search over high-dimensional vectors. It focuses on flexible, reconfigurable inverted index structures that support efficient vector search, making it directly relevant as a vector-search engine component for AI and multimedia retrieval applications.
RTNN is a research prototype system and codebase that accelerates high-dimensional nearest neighbor search using hardware ray tracing units on modern GPUs. It targets vector similarity search workloads common in AI applications, exploring ray-tracing hardware as an alternative acceleration path to traditional CPU- or CUDA-based ANN indexes.
SymphonyQG is a research codebase and method that integrates vector quantization with graph-based indexing to build efficient approximate nearest neighbor (ANN) indexes for high-dimensional vector search. It targets vector database and similarity search scenarios where combining compact codes with navigable graphs can improve recall–latency tradeoffs and memory footprint.
FAISS (Facebook AI Similarity Search) is a popular open-source library for efficient similarity search and clustering of dense vectors. Developed by Facebook/Meta, it supports billions of vectors and is widely used to power vector search engines and databases, especially where raw speed and scalability are needed.