Weaviate
Definition
Weaviate is a vector-native database built for AI applications, distinguishing itself from Pinecone through its open-source licensing (self-hostable), rich object model (vectors stored with rich typed properties), built-in vectorization modules (automatically embed text during import using integrated embedding models), and first-class hybrid search (BM25 + vector search combined in a single query). Weaviate's schema-based data model allows storing structured properties alongside vectors, enabling complex filter queries at query time. Multi-tenancy is supported via tenant isolation at the class level, with separate vector spaces per tenant. Weaviate can be self-hosted on Kubernetes or used as a fully managed cloud service.
Why It Matters
Weaviate's open-source nature makes it attractive for organizations with data sovereignty requirements or cost constraints that make managed cloud services impractical. Its built-in vectorization modules reduce pipeline complexity—instead of computing embeddings in application code and upserting pre-computed vectors, teams can configure Weaviate to call an embedding API during import automatically. For enterprise 99helpers customers with strict data residency requirements (EU data must stay in EU), a self-hosted Weaviate deployment in a private cloud provides vector search capabilities without routing customer data through third-party cloud services.
How It Works
A Weaviate schema defines a class with properties and a vectorizer: {class: 'SupportArticle', vectorizer: 'text2vec-openai', properties: [{name: 'content', dataType: ['text']}, {name: 'category', dataType: ['string']}]}. Objects are imported with text properties; Weaviate automatically calls OpenAI to embed the content field. Queries use Weaviate's GraphQL API: nearText: {concepts: ['billing issue']} with additional filters: where: {operator: Equal, path: ['category'], valueString: 'billing'}. Hybrid search combines nearText (vector) with BM25 (keyword) results using a configurable alpha parameter. The Python client (weaviate-client) provides a convenient SDK.
Weaviate Hybrid Search — BM25 + Vector Fusion
Schema — Class "Article"
{
class: "Article",
vectorizer: "text2vec-openai",
properties: [
{ name: "title", dataType: ["text"] },
{ name: "content", dataType: ["text"] },
{ name: "category", dataType: ["string"] }
]
}
text2vec auto-embeds "content" field on ingest — no manual embedding step needed.
Hybrid query execution
BM25 keyword
weight 0.3Exact term matching via inverted index
Vector semantic
weight 0.7Cosine similarity via HNSW index
Reciprocal rank fusion
alpha = 0.7 (vector weight)
Auto-vectorization
Ingest object
POST article with text properties
text2vec module
Calls embedding API automatically
Store vector
Embedding saved alongside object
Weaviate advantages
Real-World Example
A 99helpers enterprise customer deploys Weaviate on their private Kubernetes cluster in the EU to meet GDPR data residency requirements. They configure the text2vec-azure module to embed content using their Azure OpenAI deployment (also in the EU) during import. The 500,000-chunk knowledge base is imported via batch operations. Hybrid search queries combine semantic understanding with exact keyword matching, improving recall for technical terms like specific error codes that don't have close semantic neighbors. Query latency averages 65ms at p99 on their 8-core deployment.
Common Mistakes
- ✕Using the built-in vectorizer without ensuring it matches the same embedding model used for any externally computed embeddings in the same collection.
- ✕Ignoring Weaviate's HNSW index parameters—default ef and efConstruction values may not be optimal for your corpus size and query volume.
- ✕Not setting up backup and recovery for self-hosted Weaviate—unlike managed services, self-hosted deployments require explicit backup configuration.
Related Terms
Vector Database
A vector database is a purpose-built data store optimized for storing, indexing, and querying high-dimensional numerical vectors (embeddings), enabling fast similarity search across large collections of embedded documents.
Pinecone
Pinecone is a fully managed vector database service designed for production machine learning applications, providing high-performance similarity search with simple APIs and automatic scaling for RAG and semantic search systems.
Chroma
Chroma is a lightweight, open-source vector database designed for rapid prototyping and development of AI applications, offering a simple Python API and in-memory or persistent storage modes.
Hybrid Retrieval
Hybrid retrieval combines dense (semantic) and sparse (keyword) search methods to leverage the strengths of both, using a fusion step to merge their results into a single ranked list for better overall retrieval quality.
Vector Database Namespace
A namespace in vector databases is a logical partition that isolates groups of vectors within the same index, enabling multi-tenant RAG applications where different users or organizations have separate, private knowledge bases.
Ready to build your AI chatbot?
Put these concepts into practice with 99helpers — no code required.
Start free trial →