Weaviate in Production: Hybrid Search, Vector Indexes, Multi-Tenancy, and RAG
Weaviate is a vector database and search platform built for applications that need semantic retrieval, keyword search, metadata filtering, multimodal search, reranking, and retrieval-augmented generation in one system.
That combination is important because production search is rarely just “store embeddings and return the nearest vectors.” Real applications also need exact keyword matching, filters, tenant isolation, multiple vector representations, predictable memory usage, and a way to improve ranking quality after initial retrieval.
This guide focuses on how Weaviate approaches those problems and what to think about before running it in production.
How Weaviate Organizes Data
Weaviate stores objects inside collections.
A collection defines the data schema and retrieval configuration for a group of objects. Depending on your setup, an object can include:
ID
+
properties / metadata
+
one or more vectors
For a documentation RAG system, an object might conceptually contain:
id
tenant_id
document_id
chunk_text
language
source
created_at
body_vector
title_vector
The vector representation is only one part of the retrieval model. Structured properties are equally important for filtering, authorization, keyword search, and result presentation.
Three Core Search Modes
Weaviate supports three primary search styles:
- keyword search
- vector search
- hybrid search
Each solves a different retrieval problem.
Vector search
Vector search ranks objects based on embedding similarity.
This is useful when the query and document may express the same idea with different words.
For example:
"recover my account"
may retrieve content about:
"resetting login credentials"
without requiring the exact same terms.
Keyword search
Weaviate supports BM25F-based keyword search.
Lexical search remains valuable for identifiers, exact names, error codes, product SKUs, standards, legal language, and rare technical terms that embeddings may not rank reliably.
Hybrid search
Hybrid search runs vector and keyword retrieval and fuses their result sets.
Conceptually:
Query
├── vector search
└── BM25F keyword search
↓
score fusion
↓
final ranking
Weaviate lets you tune the balance between semantic and lexical retrieval rather than forcing one signal to dominate every query.
For many RAG and product-search workloads, hybrid search is a stronger starting point than dense-vector retrieval alone.
Why Hybrid Search Matters
Consider two queries:
"database connection keeps dropping"
and:
ERR_DB_1047
The first is semantic. The second is exact.
A purely lexical system may struggle with paraphrased intent. A purely semantic system may blur exact identifiers.
Hybrid retrieval can cover both.
Weaviate’s current hybrid-search system supports configurable fusion and weighting. Recent versions also add controls such as keyword operators, result boosting, and diversity selection for some hybrid workloads.
The production lesson is not “always maximize hybrid complexity.” It is:
> Measure which retrieval signals improve your real queries, then tune around that evidence.
Vector Indexes: HNSW, Flat, Dynamic, and HFresh
Weaviate currently exposes four vector-index types:
- HNSW
- Flat
- Dynamic
- HFresh
Choosing the correct index affects latency, recall, memory, and operational cost.
HNSW
HNSW is the standard approximate-nearest-neighbor choice and remains a strong default for larger datasets where fast search matters.
Its main trade-off is memory and index-management overhead compared with a simple flat search.
Flat
A flat index compares against the candidate vector set directly.
That sounds inefficient, but it can be a good choice when each index contains relatively few objects. In multi-tenant SaaS systems where each tenant has a small isolated dataset, a flat index may be cheaper than building a separate HNSW graph for every tenant.
Dynamic
Dynamic indexing is designed to begin with a flat index and move to HNSW after the object count crosses a threshold.
This can be attractive when tenant sizes vary significantly.
However, current Weaviate documentation still marks the dynamic index as experimental and notes that it requires asynchronous indexing. Production teams should evaluate that maturity status before depending on it for critical workloads.
HFresh
HFresh targets workloads where memory is a primary constraint. It reduces the requirement to keep the full vector index in memory, trading some query performance for lower memory pressure.
The practical rule is:
> Choose the vector index based on dataset size, tenant shape, latency target, recall target, and memory budget—not by copying a default from a benchmark.
Filtering Is Part of Retrieval, Not an Afterthought
Real vector searches usually carry structured constraints.
Examples:
tenant_id = 42
language = "en"
visibility = "public"
or:
category = "laptop"
price < 100000
in_stock = true
Weaviate combines vector retrieval with structured filtering and uses an inverted index for filtering and keyword search.
Its filtered vector-search design uses pre-filtering rather than simply retrieving arbitrary nearest neighbors and discarding invalid results afterward.
Current documentation states that ACORN is the default filter strategy starting with v1.34, especially improving scenarios where a restrictive filter has low correlation with the vector neighborhood.
That matters because filtered search behaves very differently from unfiltered vector benchmarks.
Always benchmark the filter patterns your application will really use.
Multiple Named Vectors
One object can represent several semantic spaces.
For example:
product_description_vector
product_image_vector
brand_vector
or:
document_title_vector
document_body_vector
summary_vector
Weaviate supports multiple target vectors and can search more than one vector space concurrently, then combine the result sets using a join strategy.
This enables multimodal and multi-signal retrieval without forcing all information into one embedding.
It also helps with embedding migrations because an old and new representation can coexist while quality is evaluated.
Reranking: Retrieval and Ranking Are Different Jobs
The fastest retrieval algorithm is not necessarily the best final ranking model.
A common production pipeline is:
cheap/high-recall retrieval
↓
50–200 candidates
↓
more expensive reranker
↓
final 10–20 results
Weaviate supports reranker integrations that can reorder a smaller candidate set after initial retrieval.
This is useful because expensive relevance models are usually too slow to score every record in the database.
For RAG, evaluate the end-to-end retrieval pipeline rather than the first ANN search in isolation.
Useful metrics include:
- recall@K
- precision@K
- nDCG
- mean reciprocal rank
- answer grounding
- task success
A vector database can be operationally healthy while returning the wrong context.
Multi-Tenancy: Avoid a Collection Explosion
A SaaS product may have thousands of customers that share the same schema but must never see each other’s data.
Creating one full collection per customer can create unnecessary resource overhead.
Weaviate has native multi-tenancy for cases where data subsets:
- use the same schema
- can share configuration
- do not need to be queried together
Conceptually:
Collection: support_documents
├── tenant A
├── tenant B
├── tenant C
└── tenant D
Each tenant can maintain its own vector index while sharing the collection definition.
This is especially relevant when tenant datasets vary in size, because different index strategies can make small-tenant and large-tenant economics very different.
Security remains the first concern:
> Tenant identity must come from trusted authentication context, not from a freely editable client query parameter.
No retrieval feature should be allowed to bypass authorization.
Compression and Resource Management
Vector indexes consume memory quickly as data grows.
Weaviate supports multiple compression approaches for vector indexes, including product, scalar, and binary quantization options depending on index/configuration.
Compression changes a familiar trade-off:
less memory / lower cost
↕
possible recall or CPU trade-offs
Do not enable compression purely because the dataset is large.
Build a baseline first:
- Measure search quality without compression.
- Measure memory and latency.
- Enable the candidate compression strategy.
- Re-run the same query set.
- Compare recall, latency, CPU, and memory.
Production search should be tuned against a quality target, not only infrastructure cost.
Embedding Generation: Integrated vs Bring Your Own
Weaviate can work with configured vectorizer integrations, or applications can generate vectors independently and provide them directly.
Both patterns can be valid.
Integrated vectorization
Advantages:
- simpler application pipeline
- less embedding plumbing
- one place to configure vectorization behavior
Trade-offs:
- tighter coupling to the database configuration
- model changes must be coordinated carefully
- operational limits of the embedding provider still matter
Bring your own vectors
Advantages:
- full control over embedding generation
- easier model experimentation outside the database
- easier reuse of an existing inference platform
Trade-offs:
- application must manage retries, batching, versioning, and failed embedding jobs
Choose the boundary that matches your platform architecture.
Embedding Migrations Must Be Versioned
Changing embedding models can change vector dimensions and the geometry of similarity space.
Never assume two embedding models produce mutually comparable vectors.
A safe migration can look like:
old named vector
↓
add new named vector
↓
background backfill
↓
build/evaluate index
↓
shadow traffic
↓
move production queries
↓
retire old vector
This gives you a rollback path and allows relevance testing before the new model becomes authoritative.
Replication, Availability, and Backups
A production vector database should be treated as stateful infrastructure.
Depending on deployment mode, plan for:
- replication factor
- node failure
- storage failure
- backups
- restore testing
- upgrades
- schema/index migrations
Replication improves availability, but it is not a substitute for backups.
Backups protect against different failure classes: accidental deletion, corruption, operator mistakes, or recovery to an earlier state.
Document the recovery process before you need it.
What to Monitor
Track infrastructure and relevance together.
Infrastructure
- query latency percentiles
- request/error rate
- CPU
- memory
- disk capacity and latency
- import throughput
- indexing backlog
- replica/node health
- collection and tenant growth
Retrieval quality
- recall@K
- keyword vs vector contribution in hybrid search
- reranker lift
- zero-result rate
- failed authorization/filter expectations
- relevance changes after embedding/index upgrades
If only infrastructure dashboards exist, retrieval regressions can remain invisible.
When Weaviate Is a Strong Fit
Weaviate is worth evaluating when you need several of these together:
- vector similarity search
- BM25F keyword search
- hybrid retrieval
- structured filters
- multiple vector spaces
- reranking
- built-in vectorization options
- native multi-tenancy
- dedicated vector infrastructure
- configurable indexes and compression
It is particularly attractive when search is becoming a product subsystem rather than a helper function inside one API endpoint.
When It May Be Too Much
A dedicated vector database adds another stateful service to your architecture.
If your application has:
- a modest number of embeddings
- low search traffic
- simple top-K queries
- minimal metadata filtering
- an existing database that already provides adequate vector retrieval
then starting with your existing data platform may be simpler.
Add specialized infrastructure when the workload requires its capabilities—not because every AI architecture diagram contains a vector database box.
Production Checklist
- Collection schema matches actual retrieval/filter requirements
- Embedding model and distance metric are compatible
- Vector index type matches data size and tenant shape
- Dynamic-index maturity is acceptable before production use
- Filter-heavy queries are benchmarked realistically
- Hybrid search is evaluated against pure vector search
- Reranking is measured for quality lift
- Tenant boundaries are enforced by trusted backend code
- Compression is tested against a relevance baseline
- Embedding migrations are versioned and reversible
- Replication and backup strategies are documented
- Retrieval-quality metrics are monitored
Final Takeaway
Weaviate is most useful when retrieval needs multiple first-class signals: semantic vectors, BM25F keywords, structured filters, multiple vector spaces, reranking, and tenant-aware data organization.
The best production architecture is not the one with the most retrieval features enabled. It is the one whose index, filters, hybrid weights, reranking strategy, and resource profile are measured against real user queries.
Start with a representative dataset and relevance evaluation set. Tune the retrieval pipeline. Then scale the infrastructure around what actually improves search quality.
Official References
BUILDING AN AI PRODUCT?
Talk to Lofingo about custom autonomous AI agents, enterprise workflow automation, and scalable software systems.
EXPLORE AI SERVICES →