Full-text search
BM25-ranked keyword search over text fields.
What it does
Full-text search finds documents by the words they contain and ranks them by relevance, rather than matching a field exactly. It is part of the Community edition.
Under the hood: an in-memory inverted index with positional postings over one or more text fields, a default English stop-word list, and BM25 ranking.
// BM25 keyword index over one or more text fields
articles.CreateFullTextIndex(x => x.Title, x => x.Content);
// Ranked keyword search. Operators: +required, -excluded, "exact phrase"
var hits = articles.FullTextSearch("rotate +encryption -legacy", k: 10);
// Phrase match (adjacent terms only)
var exact = articles.FullTextSearch("\"encryption keys\"", k: 10);
Query language
| Syntax | Meaning |
|---|---|
rotate keys | Plain terms: optional; documents matching more of them rank higher. |
+encryption | Required term. |
-legacy | Excluded term. |
"encryption keys" | Exact phrase: the terms must be adjacent. |
Where else it is available
- The Management UI's Search page Enterprise.
- The MCP server's
FullTextSearchtool, for AI agents Enterprise.
Things to know
- Full-text indexes exist for document collections, not file collections.
- There is one analyzer: English stop words, no stemming, synonyms or fuzzy matching. Language-aware analyzers are on the roadmap, subject to demand.
- Full-text and vector results are not fused; an application that wants hybrid ranking combines them itself.