Qdrant

Qdrant — высокопроизводительная vector search engine и vector database, оптимизированная для приложений с embedding/semantic search, recommendation и nearest-neighbor задач. Написан на Rust, доступен как self-hosted server, легковесная версия Edge и как управляемый сервис Qdrant Cloud.

Источник: qdrant на GitHub

Установка и быстрый старт

  • Запуск локального сервера в Docker (быстрый старт):
docker run -p 6333:6333 qdrant/qdrant

Обратите внимание: этот запуск не защищён (open to all interfaces). Перед продакшеном изучите раздел security в документации.

Клиенты

Официальные клиенты: Go, [tag/rust], JavaScript/TypeScript, [tag/python], .NET/C#, Java. Есть также community-клиенты (Kotlin, PHP и др.).

Пример использования с Python client:

from qdrant_client import QdrantClient

client = QdrantClient(url="http://localhost:6333")

# создать коллекцию и добавить точку (vector + payload)
client.recreate_collection("my_collection", vector_size=1536, distance="Cosine")
client.upsert(
    collection_name="my_collection",
    points=[{
        "id": 1,
        "vector": [0.1, 0.2, ...],
        "payload": {"title": "Example"}
    }]
)

# поиск похожих
res = client.search("my_collection", query_vector=[...], limit=5)

Основные возможности

  • Dense, Sparse и Multi-vector search (поддержка нескольких эмбеддингов на объекте).
  • Фильтрация по payload: rich JSON-поиск (keyword, full-text, numeric ranges, geo и т.д.) с must/should/must_not.
  • Hybrid search: комбинация семантики и точечного/ключевого поиска с различными стратегиями fusion.
  • Vector quantization и on-disk storage: значительная экономия RAM с компромиссом точности.
  • Горизонтальное масштабирование: sharding, replication, zero-downtime updates.
  • Рекомендации, фасетирование, MMR, relevance feedback, multitenancy.
  • SIMD-ускорение, GPU-поддержка для индексирования, async I/O (io_uring) и WAL для устойчивости.
  • Web UI для инспекции коллекций и мониторинга.

Архитектура и интерфейсы

  • REST API с OpenAPI спецификацией.
  • gRPC интерфейс для высокопроизводительных сценариев.
  • Qdrant Edge — встроенная, локальная версия для edge/embedded-приложений (встраивается в процесс приложения).

Когда использовать

  • Семантический поиск и поиск по эмбеддингам (NLP, recommendation, image search).
  • Приложения, где важна фильтрация по метаданным вместе с векторным поиском.
  • Сценарии с ограниченной памятью — благодаря квантованию и on-disk хранению.

Ресурсы

Лицензия

Apache License 2.0.