Git Repository Guide

Weaviate

Weaviate

Data Self-hostable BSD-3-Clause

When to use this

Use this when you need a vector database with built-in ML models for embedding — you send raw text and Weaviate handles vectorization automatically. Strong choice for semantic search products. Can run self-hosted or use Weaviate Cloud.

YouTube Tutorials

Click any card to watch on YouTube

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.