Back to blog
ImplementationAugust 21, 20269 min readUpdated August 21, 2026

Hybrid Search and Reranking for AI Chatbots: Better RAG Results

Hybrid Search combines keyword and vector search. Here is how website teams test RRF, reranking, metadata, and secure no-result cases for RAG chatbots.

Website chatbots rarely fail because a knowledge base contains no information at all. More often, the retrieval step fails to find the passage that fits the question and specific context. Visitors use product names, error messages, and article numbers, but also formulate questions freely: “Why is the chatbot showing the wrong plan?” or “Can I still change an order that has already been shipped?” Neither pure keyword nor pure vector search works as a blanket answer for this mix. Hybrid Search connects both signals so that a RAG chatbot receives more reliable sources into its response context.

Professional comparing colorful fabric swatches in a bright workshop and organizing the most relevant samples
Good results combine the exact wording of a query with its domain context.

Keyword and vector search fulfill different tasks

Keyword search is strong when words must match exactly. This applies to order numbers, product names, specific error messages, contract names, or a version like “2.4”. It can transparently demonstrate why a document matches: the searched word appears in the title, heading, or passage. Its weakness lies in everyday language, synonyms, and incomplete formulations. A visitor query asking for a “receipt copy” won't necessarily find a page that only mentions “download invoice”.

Vector search bridges this gap. It represents question and content as semantic proximity and can therefore identify similar requests even when identical terms are missing. This helps with naturally phrased support questions, multilingual variants, and different terms for the same procedure. However, semantic proximity alone is not a free pass: a passage might be semantically similar to the topic, but refer to a different product version, a different market, or an expired rule. That is precisely why context checking belongs in the retrieval pipeline and not just at the language model stage.

Why Hybrid Search is a sensible starting point

Microsoft describes Hybrid Search as a joint query containing both full-text and vector parts. Both queries run in parallel, and their result lists are merged afterwards. This is attractive for enterprise websites because exact terms are preserved while related, well-formulated content becomes accessible. A chatbot doesn't need to force visitors to choose between a “technical” and a “semantic” search. The selection happens in the background and can be verified for all queries using the same quality process.

Hybrid Search improves the candidate pool; it does not generate objective truth. The chatbot must only use content that is cleared for the specific situation. Public web pages, internal drafts, and protected customer data do not belong in a shared, uncontrolled context. Equally important is a clear behavior when no suitable source is available: clarifying questions, links to contact pages, or human handoff are safer than a fluently generated guess.

Understanding RRF: Merging ranking lists

The scores from full-text and vector search have different meanings and scales. Adding them directly or inventing a fixed threshold for them often leads to unstable results. Reciprocal Rank Fusion, or RRF, works with the position of a document in each ranked list instead. A document that appears near the top of both lists receives a strong combined signal. A document that is visible in only one list can also be considered, but won't automatically displace everything else.

RRF is not a magical default value or a replacement formula for domain testing. How many candidates from each search enter the fusion, which filters apply beforehand, and when a result is deemed usable at all depends on content and risk. For common product questions, a small, focused window might be effective. For complex instructions or error diagnostics, more candidates may be needed. The key is to benchmark changes against a test set with real questions instead of adopting a universal parameter from an example.

Semantic reranking as a second, limited stage

After a good pre-selection, a reranker can evaluate the narrower candidate set once more against the entire question. Microsoft categorizes semantic ranking as a secondary ranking applied over an already pre-ranked result list. Amazon Bedrock similarly describes reranking as evaluating text documents for their relevance to the request. This second stage is well-suited for multi-condition questions: such as whether a plan change is possible after an order has already shipped and under a specific contract type.

Reranking should be limited intentionally. It incurs extra latency and, depending on the service, additional costs. Therefore, do not pass the entire knowledge base to a reranker, but only the pre-filtered and fused top set. Define a time budget and a fallback. If the budget is exceeded, the chatbot could present the most reliable list of sources, ask for clarification, or hand off the conversation to a support team. A reranker cannot fix outdated, missing, or unauthorized content.

Metadata filters protect the context

Metadata often influences answer quality more strongly than adding another model option. Maintain at least language, product or service, version, market, target group, and validity per source, provided these details matter for usage. A filter for the correct tenant or permission scope must take effect before output generation. On a public website, a chatbot can only retrieve public content; for logged-in areas, verifiable permissions apply in addition.

Time is also a metadata question. Price lists, delivery terms, and manuals should carry a clear update date or controlled validity status. If the source is no longer trustworthy, it belongs outside the index or in a separate audit trail. Filters must reflect requirements that visitors can understand, rather than covertly manipulating the ranking order. Document which filters apply to which question categories and how a team verifies changes.

A concrete pipeline from query to context

  1. Normalize question: Detect language and obvious context without unnecessarily storing or altering personal data.
  2. Check access and metadata: Determine before retrieval which sources are permitted for product, market, role, and validity period.
  3. Retrieve in parallel: Execute full-text and vector search against the exact same permitted source set.
  4. Fuse rankings: Combine lists using RRF and preserve provenance signals for each candidate for debugging.
  5. Limit reranking: Perform relevance scoring only on the small top set and measure latency.
  6. Secure context: Check for duplicates, source status, and appropriate length before passing passages to the generation model.
  7. Answer with boundaries: Cite sources, indicate uncertainty, and use a safe transfer option when necessary.

Practical example: Shipping status and plan change

Suppose a visitor asks: “Can I still change my plan even though my package is already on the way?” Keyword search might find a page on “change plan” and a support article about “package in transit”. Vector search finds a guide describing the procedure as a modification post-shipping. RRF promotes documents that connect both aspects. A reranker can subsequently check whether the relevant passage truly covers the combination of plan and shipping.

Before responding, filter by the relevant market, product line, and current validity status. If sources are contradictory or required details are missing, the chatbot shouldn't make assumptions based on similar cases. It can transparently state which condition remains open and direct the visitor to an appropriate, verified contact option. This keeps the conversation helpful without fabricating an unsupported promise.

No-result cases and score debugging

A no-result outcome is often a signal of a knowledge gap, not a broken search system. Distinguish between at least four scenarios: there is no permitted source, sources exist but no match is relevant enough, the question is ambiguous, or a technical error prevents retrieval. Each case requires its own clear response. “I cannot find a reliable answer in the approved information for this” is more honest than a generic sentence without a next step.

For debugging, final scores alone are insufficient. For each test question, teams should be able to see which filters were applied, which documents came from keyword and vector search, how they were fused, and whether reranking changed the order. Only store the privacy-minimized data necessary for quality control. Look for patterns: Are specific synonyms missing? Is an outdated source overruling new content? Is a locale breaking out of the metadata logic? Only the root cause determines whether chunking, metadata, source maintenance, or ranking needs to be adjusted.

Test set, metrics, and cost budget

A small Golden Set with 30 to 50 realistic questions is a great starting point. Assign expected sources, disallowed sources, and the desired response when knowledge is missing for each question. Measure separately whether a correct source is among the candidates, whether it ranks high enough, and whether the final response relies exclusively on verified information. Intentionally add typos, exact terms, natural phrasing, multilingual queries, and critical negative cases.

Change only one variable per test run: a filter, the candidate count, reranking depth, or chunk structure. Also track response latency and the number of external model calls. A higher relevance score can be useless if the answer arrives too late or if costs for frequent standard queries spike. Define a latency and cost budget per question class. Fast, well-sourced standard answers and conservative transfers are far more valuable for many websites than a maximally complex ranking setup.

Typical implementation mistakes

  • Comparing raw keyword and vector scores directly, even though their scales differ.
  • Indexing drafts, old price lists, or restricted content without status and authorization filters.
  • Applying reranking to too many candidates, losing control over latency and costs.
  • Treating a demo with a few good queries as sufficient proof of quality.
  • Generating a plausible answer when sources are missing instead of providing uncertainty notices, follow-up questions, or handoffs.
  • Failing to version changes to sources, chunking, and ranking, leaving them impossible to explain later.

Implementation checklist

  • Define permitted sources and authorization boundaries before indexing.
  • Maintain metadata for language, product, version, market, and validity.
  • Run full-text and vector search in parallel, then merge via RRF.
  • Use reranking only on a small, pre-authorized candidate pool.
  • Evaluate source links, no-result responses, and human handoffs in your test set.
  • Measure latency, costs, and critical incorrect answers for every change.

Conclusion

Hybrid Search offers a robust foundation for website chatbots handling diverse query types. Keyword search preserves exact signals, vector search captures similar intents, RRF merges their rankings, and a bounded reranker refines the final candidate pool. However, sustainable quality gains stem from well-maintained sources, appropriate metadata, traceable testing, and an answer logic that acknowledges its boundaries. That is how retrieval becomes verifiable rather than merely technically impressive.

Sources and further reading

Turn website visits into better conversations

Launch an AI chatbot that is useful from day one

Train ChatReact with your website, documents, and approved facts so visitors get faster answers and your team gets fewer repetitive requests.

Related articles

Keep reading