Weaviate
Weaviate is an open-source, cloud-native vector database that stores objects and vectors, enabling semantic search at scale. It combines vector similarity search with keyword filtering, RAG, and reranking in a single query interface. It is for developers building AI applications like RAG systems, semantic search, and recommendation engines.
✨ Key features
- Fast semantic search over billions of vectors in milliseconds.
- Flexible vectorization with integrated models or custom embeddings.
- Advanced hybrid search combining semantic and keyword (BM25) search.
- Integrated RAG and reranking capabilities for generative search.
- Production-ready with horizontal scaling, multi-tenancy, and RBAC.
- Cost-efficient operations with built-in vector compression and TTL.
🎯 Use cases
- Build retrieval-augmented generation (RAG) systems.
- Implement semantic and image search applications.
- Create recommendation engines and chatbots.
- Perform content classification and summarization.
- Power agentic AI systems with decision trees.
📦 Installation
🧰 Requirements: Requires Docker for local setup, or a cloud deployment (Weaviate Cloud, AWS, GCP). Python client requires Python 3.x. Optional API keys for integrated model providers.
Docker Compose
Create a docker-compose.yml file:
services:
weaviate:
image: cr.weaviate.io/semitechnologies/weaviate:1.36.0
ports:
- "8080:8080"
- "50051:50051"
environment:
ENABLE_MODULES: text2vec-model2vec
MODEL2VEC_INFERENCE_API: http://text2vec-model2vec:8080
text2vec-model2vec:
image: cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M
Start Weaviate and the embedding service:
docker compose up -d
Install the Python client:
pip install -U weaviate-client
🚀 Usage
import weaviate
from weaviate.classes.config import Configure, DataType, Property
client = weaviate.connect_to_local()
client.collections.create(
name="Article",
properties=[Property(name="content", data_type=DataType.TEXT)],
vector_config=Configure.Vectors.text2vec_model2vec(),
)
articles = client.collections.get("Article")
articles.data.insert_many([
{"content": "Vector databases enable semantic search"},
{"content": "Machine learning models generate embeddings"},
{"content": "Weaviate supports hybrid search capabilities"},
])
results = articles.query.near_text(query="Search objects by meaning", limit=1)
print(results.objects[0])
client.close()
❓ FAQ
How do I install Weaviate?
You can install Weaviate using Docker Compose, Kubernetes, or use Weaviate Cloud. See the installation docs for details.
Can I use my own vector embeddings?
Yes, you can import pre-computed vector embeddings by configuring the vectorizer as self-provided.
What client libraries are available?
Official clients exist for Python, JavaScript/TypeScript, Java, Go, and C#/.NET, plus community-maintained libraries.
Does Weaviate support hybrid search?
Yes, Weaviate supports hybrid search combining semantic and keyword (BM25) search in a single API call.
📊 Repository
🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.