Qdrant

Vector Search Engine for the next generation of AI applications

Tests status OpenAPI Docs Apache 2.0 License Discord Roadmap v1.0

**Qdrant** (read: _quadrant_ ) is a vector similarity search engine and vector database. It provides a production-ready service with a convenient API to store, search, and manage points - vectors with an additional payload. Qdrant is tailored to extended filtering support. It makes it useful for all sorts of neural-network or semantic-based matching, faceted search, and other applications. Qdrant is written in Rust πŸ¦€, which makes it fast and reliable even under high load. With Qdrant, embeddings or neural network encoders can be turned into full-fledged applications for matching, searching, recommending, and much more! Also available as managed solution in the **Qdrant Cloud** https://qdrant.to/cloud β›… ## Demo Projects ### Semantic Text Search πŸ” The neural search uses semantic embeddings instead of keywords and works best with short texts. With Qdrant and a pre-trained neural network, you can build and deploy semantic neural search on your data in minutes. [Try it online!](https://qdrant.to/semantic-search-demo) ### Similar Image Search - Food Discovery πŸ• There are multiple ways to discover things, text search is not the only one. In the case of food, people rely more on appearance than description and ingredients. So why not let people choose their next lunch by its appearance, even if they don’t know the name of the dish? [Check it out!](https://qdrant.to/food-discovery) ### Extreme classification - E-commerce Product Categorization πŸ“Ί Extreme classification is a rapidly growing research area within machine learning focusing on multi-class and multi-label problems involving an extremely large number of labels. Sometimes it is millions and tens of millions classes. The most promising way to solve this problem is to use similarity learning models. We put together a demo example of how you could approach the problem with a pre-trained transformer model and Qdrant. So you can [play with it online!](https://qdrant.to/extreme-classification-demo)
More solutions
Semantic Text Search Similar Image Search Recommendations
Chat Bots Matching Engines Anomaly Detection
## API ### REST Online OpenAPI 3.0 documentation is available [here](https://qdrant.github.io/qdrant/redoc/index.html). OpenAPI makes it easy to generate a client for virtually any framework or programing language. You can also download raw OpenAPI [definitions](https://github.com/qdrant/qdrant/blob/master/docs/redoc/master/openapi.json). ### gRPC For faster production-tier searches, Qdrant also provides a gRPC interface. You can find gRPC documentation [here](https://qdrant.tech/documentation/quick_start/#grpc). ### Clients Qdrant offers the following client libraries to help you integrate it into your application stack with ease: - [Python client](https://github.com/qdrant/qdrant_client) - [Go client](https://github.com/qdrant/go-client) - [Rust client](https://github.com/qdrant/rust-client) ## Features ### Filtering and Payload Qdrant supports any JSON payload associated with vectors. It does not only store payload but also allows filter results based on payload values. It allows any combinations of `should`, `must`, and `must_not` conditions, but unlike ElasticSearch post-filtering, Qdrant guarantees all relevant vectors are retrieved. ### Rich Data Types Vector payload supports a large variety of data types and query conditions, including string matching, numerical ranges, geo-locations, and more. Payload filtering conditions allow you to build almost any custom business logic that should work on top of similarity matching. ### Query Planning and Payload Indexes Using the information about the stored payload values, the `query planner` decides on the best way to execute the query. For example, if the search space limited by filters is small, it is more efficient to use a full brute force than an index. ### SIMD Hardware Acceleration Qdrant can take advantage of modern CPU x86-x64 architectures. It allows you to search even faster on modern hardware. ### Write-Ahead Logging Once the service confirmed an update - it won't lose data even in case of power shut down. All operations are stored in the update journal and the latest database state could be easily reconstructed at any moment. ### Distributed Deployment Since [v0.8.0](https://github.com/qdrant/qdrant/releases/tag/v0.8.0) Qdrant supports distributed deployment. In this mode, multiple Qdrant machines are joined into a cluster to provide horizontal scaling. Coordination with the distributed consensus is provided by the [Raft](https://raft.github.io/) protocol. ### Stand-alone Qdrant does not rely on any external database or orchestration controller, which makes it very easy to configure. ## Usage ### Docker 🐳 Build your own from source ```bash docker build . --tag=qdrant/qdrant ``` Or use latest pre-built image from [DockerHub](https://hub.docker.com/r/qdrant/qdrant) ```bash docker pull qdrant/qdrant ``` To run the container, use the command: ```bash docker run -p 6333:6333 qdrant/qdrant ``` And once you need a fine-grained setup, you can also define a storage path and custom configuration: ```bash docker run -p 6333:6333 \ -v $(pwd)/path/to/data:/qdrant/storage \ -v $(pwd)/path/to/custom_config.yaml:/qdrant/config/production.yaml \ qdrant/qdrant ``` * `/qdrant/storage` - is a place where Qdrant persists all your data. Make sure to mount it as a volume, otherwise docker will drop it with the container. * `/qdrant/config/production.yaml` - is the file with engine configuration. You can override any value from the [reference config](https://github.com/qdrant/qdrant/blob/master/config/config.yaml) Now Qdrant should be accessible at [localhost:6333](http://localhost:6333/). ## Docs πŸ““ * The best place to start is [Quick Start Guide](https://github.com/qdrant/qdrant/blob/master/QUICK_START.md) * The [Documentation](https://qdrant.tech/documentation/) * Use the [OpenAPI specification](https://qdrant.github.io/qdrant/redoc/index.html) as a reference * Follow our [Step-by-Step Tutorial](https://qdrant.to/qdrant-tutorial) to create your first neural network project with Qdrant * Assess Qdrant's performance in our [benchmarks](https://qdrant.tech/benchmarks/) * Check out our further plans in [v1.0 Roadmap](https://qdrant.to/roadmap) ## Contacts * Join our [Discord channel](https://qdrant.to/discord) * Follow us on [Twitter](https://qdrant.to/twitter) * Subscribe to our [Newsletters](https://qdrant.to/newsletter) * Write us an email [info@qdrant.tech](mailto:info@qdrant.tech) Building something special with Qdrant? We can [help](https://qdrant.tech/pricing/)! ## Contributors ✨ Thanks to the people who contributed to Qdrant:
Andrey Vasnetsov
Andrey Vasnetsov

πŸ’»
Andre Zayarni
Andre Zayarni

πŸ“–
Joan Fontanals
Joan Fontanals

πŸ’»
trean
trean

πŸ’»
Konstantin
Konstantin

πŸ’»
Daniil Naumetc
Daniil Naumetc

πŸ’»
Viacheslav Poturaev
Viacheslav Poturaev

πŸ“–
Alexander Galibey
Alexander Galibey

πŸ’»
HaiCheViet
HaiCheViet

πŸ’»
Marcin Puc
Marcin Puc

πŸ’»
Anton V.
Anton V.

πŸ’»
Arnaud Gourlay
Arnaud Gourlay

πŸ’»
Egor Ivkov
Egor Ivkov

πŸ’»
Ivan Pleshkov
Ivan Pleshkov

πŸ’»
Daniil
Daniil

πŸ’»
Anton Kaliaev
Anton Kaliaev

πŸ’»
Andre Julius
Andre Julius

πŸ’»
Prokudin Alexander
Prokudin Alexander

πŸ’»
Tim Eggert
Tim Eggert

πŸ’»
Gabriel Velo
Gabriel Velo

πŸ’»
Boqin Qin(秦 δΌ―ι’¦)
Boqin Qin(秦 δΌ―ι’¦)

πŸ›
Russ Cam
Russ Cam

πŸ’»
erare-humanum
erare-humanum

πŸ’»
## License Qdrant is licensed under the Apache License, Version 2.0. View a copy of the [License file](https://github.com/qdrant/qdrant/blob/master/LICENSE).