Fast, Simple, In-Memory Nearest Neighbor Search

Voyager provides approximate nearest-neighbor search in Python and Java. It's up to 10 times faster than Annoy, while using 4 times less memory and providing more features.

Get Started


Tuned for lighting-fast production use at Spotify, Voyager provides near-instantaneous nearest-neighbor lookups on in-memory collections of embeddings — without requiring GPUs — so you can power millions of requests per day at millisecond latencies.


Need an example to get started? Voyager includes documentation for every method, and a comprehensive guide for common use cases. With a strongly-typed API in both Python or Java, you can have your IDE guide you with autocomplete every step of the way — or check out Voyager's documentation.

Easy to Integrate

Add Voyager to your existing application with just one line of code. No dependencies or setup required. Voyager works with all popular Python and Java versions, on macOS, Linux, and Windows. Just import voyager in Python or import com.spotify.voyager; in Java and go!


Voyager is built to minimize resource usage. There's no server to start, no resources to keep running in the background, and no operational overhead. Add Voyager to your application code and you can search through millions of embeddings while only using gigabytes of memory.

Check out a demo of how to use Voyager in both Python and Java in 5 minutes:

You can hear more from the Voyager team on the NerdOut@Spotify podcast: