Full-Text Search vs. AI Search: Two Different Tools in the Same Box
Knowledge ships two genuinely different search mechanisms — keyword matching and grounded semantic retrieval — and knowing which one is running changes what result to expect.
"Search that works" undersells what's actually going on in Knowledge. There isn't one search mechanism doing double duty — there are two, built on entirely different technology, and knowing which one you're using changes what kind of result to expect.
Full-text search: keyword match, fast and literal
The default search path runs against a SQLite FTS5 index — a MATCH query over a knowledge_base_documents_fts table. This is classic full-text search: it matches the words in your query against the words in your documents. It's fast, it's predictable, and it's literal — searching for "refund" finds documents containing "refund." One detail worth knowing if you're ever looking at the underlying code: the FTS table's exact name is load-bearing for FTS5's MATCH syntax specifically, not an arbitrary naming choice — it's not something to casually rename.
AI search: semantic retrieval with citations
The AI search path runs on AutoRAG instead, scoped to your space, and works on meaning rather than exact wording (see the companion guide on AI search's grounding and honest-failure behavior for the full mechanics). A query for "how do I get my money back" can surface a document titled "Refund Policy" even without a single shared keyword, because the match is semantic, not literal. It also returns citations for what it retrieved — a materially different kind of result than a list of matching documents.
When each one actually wins
Full-text search wins when the searcher already knows roughly what term they're looking for — a specific error code, a product name, an exact phrase from your docs. It's also the one that works with zero configuration and zero dependency on an external AI provider.
AI search wins when the searcher describes their problem in their own words rather than your documentation's vocabulary — which, for anyone searching a support knowledge base, is most of the time. A customer typing "why did my card get declined" isn't guaranteed to match a document titled "Payment Authorization Failures" under keyword search, but a semantic search bridges exactly that gap.
The honest tradeoff
AI search requires configuration (CLOUDFLARE_AUTORAG_TOKEN, AUTORAG_INSTANCE_NAME) that full-text search doesn't — and if it's missing, AI search fails with an explicit, honest error rather than silently falling back. That means full-text search is the one guaranteed to work on any deployment; AI search is the better experience for underspecified queries, but only once it's actually configured. Knowing both exist — and which one is running behind a given search box in your product — is the difference between debugging a "bad" search result and correctly recognizing you're looking at the expected behavior of a keyword-matching tool.