# microsoft/sptag

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-sptag).**

5,004 stars · 618 forks · C++ · MIT

## Links

- GitHub: https://github.com/microsoft/SPTAG
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-sptag.md

## Description

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 handling.

The project implements search and indexing capabilities using space-partition trees and relative neighborhood graphs. It performs approximate nearest neighbor searches via iterative graph traversal and distance metric calculations to locate the closest vectors to a query point.

## Tags

### Data & Databases

- [Billion-Scale Vector Search](https://awesome-repositories.com/f/data-databases/approximate-nearest-neighbor-search/billion-scale-vector-search.md) — Provides high-performance approximate nearest neighbor search optimized for massive, billion-scale vector datasets.
- [Approximate Nearest Neighbor Search](https://awesome-repositories.com/f/data-databases/approximate-nearest-neighbor-search.md) — Provides a library for high-performance retrieval using approximate nearest neighbor search algorithms.
- [Distributed Vector Stores](https://awesome-repositories.com/f/data-databases/distributed-vector-stores.md) — Scales vector search operations across multiple machines to handle extremely large datasets and online requests.
- [Graph Traversal](https://awesome-repositories.com/f/data-databases/graph-traversal.md) — Uses iterative graph traversal to navigate connected vector nodes and find the nearest neighbors.
- [Vector Search Indexes](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-and-indexing/vector-search-indexes.md) — Implements high-performance data structures optimized for similarity search in high-dimensional vector spaces.
- [Vector Indexing](https://awesome-repositories.com/f/data-databases/vector-indexing.md) — Provides tools for building and managing vector indices that support incremental updates without full rebuilds.
- [Dynamic Index Management](https://awesome-repositories.com/f/data-databases/vector-indexing/dynamic-index-management.md) — Supports incremental updates, insertions, and deletions of vectors without requiring a full index rebuild.
- [Distributed Engines](https://awesome-repositories.com/f/data-databases/vector-search/distributed-engines.md) — Functions as a distributed engine that scales horizontally across multiple nodes for massive datasets.
- [Vector Similarity Search](https://awesome-repositories.com/f/data-databases/vector-similarity-search.md) — Retrieves vectors closest to a query point by calculating distance metrics through iterative traversal. ([source](https://github.com/microsoft/sptag#readme))
- [Distributed Search Engines](https://awesome-repositories.com/f/data-databases/distributed-search-engines.md) — Utilizes a distributed cluster architecture to scale similarity search operations for massive datasets. ([source](https://github.com/microsoft/sptag#readme))
- [Incremental Indexing Engines](https://awesome-repositories.com/f/data-databases/incremental-indexing-engines.md) — Supports dynamic updates to large-scale vector indices without requiring a full re-indexing process. ([source](https://github.com/microsoft/sptag#readme))
- [Distributed Search Query Routing](https://awesome-repositories.com/f/data-databases/redis-cluster-deployments/distributed-search-query-routing.md) — Implements query routing across a cluster of machines to handle massive datasets while maintaining low latency.

### Graphics & Multimedia

- [High-Dimensional](https://awesome-repositories.com/f/graphics-multimedia/space-partitioning/high-dimensional.md) — Divides high-dimensional space into recursive regions to narrow the search area for candidate vector matches.

### Software Engineering & Architecture

- [Proximity Graphs](https://awesome-repositories.com/f/software-engineering-architecture/entity-management/graph-traversal/greedy-graph-search/proximity-graphs.md) — Builds relative neighborhood graphs to enable efficient greedy traversal during similarity searches.

### Part of an Awesome List

- [Similarity Search](https://awesome-repositories.com/f/awesome-lists/data/similarity-search.md) — Library for fast approximate nearest neighbor search.
