What is Weaviate?
Weaviate is an open-source vector database that stores both objects and vectors. Unlike Qdrant or Chroma which expect you to provide pre-computed vectors, Weaviate can vectorize your data automatically using pluggable vectorizer modules.
Key Differentiators
- Auto-vectorization — Configure a vectorizer (OpenAI, Cohere, Hugging Face, or a local model) and Weaviate embeds objects on insert. No external embedding step needed.
- Hybrid Search — Combine dense vector search with BM25 keyword search for better results.
- GraphQL API — Query your data with a GraphQL interface, including filtering, aggregation, and generative search.
- Modules — Q&A module, generative module (LLM-augmented results), reranking, and more.
Quick Start with Docker
docker run -d -p 8080:8080 -p 50051:50051 \
-e ENABLE_MODULES='text2vec-openai,generative-openai' \
cr.weaviate.io/semitechnologies/weaviate:latest
Python Client
import weaviate
client = weaviate.connect_to_local()
collection = client.collections.create("Article", vectorizer_config=wvc.Configure.Vectorizer.text2vec_openai())
collection.data.insert({"title": "AI is changing the world"})
results = collection.query.near_text(query="machine learning", limit=5)
When to Choose Weaviate
Choose Weaviate when you want auto-vectorization and hybrid search out of the box. Choose Qdrant when you need raw performance and already handle embeddings externally.