microsoft/sptag

A distributed approximate nearest neighborhood search (ANN) library which provides a high quality vector index build, search and distributed online serving...

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 3 minutes ago
Added to GitGenius on September 13th, 2026
Created on September 12th, 2018
Open Issues & Pull Requests: 143 (+0)
GitHub issues: Enabled
Number of forks: 622
Total Stargazers: 5,018 (+0)
Total Subscribers: 133 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 6.0 days
Mean response time: 144.6 days
90th percentile: 697.2 days
Tracked items: 7

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 11
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 622 days
Stale 30+ days: 11
Stale 90+ days: 11

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

SPTAG is a library for approximate nearest neighbor search that enables large-scale vector indexing, querying, and distributed serving across multiple machines.

The library addresses the challenge of finding similar vectors efficiently in high-dimensional spaces by combining space partition trees with relative neighborhood graphs. It offers two indexing strategies: kd-tree with relative neighborhood graph (SPTAG-KDT), which optimizes for lower index building cost, and balanced k-means tree with relative neighborhood graph (SPTAG-BKT), which prioritizes search accuracy in very high-dimensional data. Search proceeds by first locating seed points in the space partition trees, then iteratively searching through the neighborhood graph to refine results. The library supports both L2 and cosine distance metrics for vector comparison.

Developers should choose this tool for large-scale vector search scenarios requiring distributed serving across multiple machines. It is particularly suited to applications where vectors can be meaningfully compared by distance metrics and where the ability to add and remove vectors online is valuable. The project explicitly supports fresh updates with online vector deletion and insertion, distinguishing it from static index approaches. The choice between SPTAG-KDT and SPTAG-BKT depends on whether index building efficiency or search accuracy in high dimensions is the priority for a given application.

The project maintains active research engagement, with recent publications on incremental in-place updates for billion-scale vector search and on unifying vector similarity search with relational queries. Development includes comprehensive tooling across multiple platforms, with build support for Linux via compilation of dependencies including SPDK, ISA-L crypto, and RocksDB, Windows via Visual Studio solution files, and Docker containerization. The project explicitly welcomes contributions and maintains documentation including getting started guides, parameter tuning references, and end-to-end tutorials for building production vector search services.