
The problem
Keyword search fails the moment the words differ: another language, a synonym, a description instead of a name. Pure vector search fixes that and loses the exact match, so a search for a product code or a customer name comes back fuzzy.
How it works
The query first runs as a text match, each term OR'd with $match and ranked by $similarity. Nearest neighbours ($nearest) over embeddings stored beside the same items are then interleaved with those hits rather than replacing them, so exact matches stay on top and meaning fills the gaps.
Search also learns: each result shown is logged as an impression, and once clicks exist, _recommend reorders results by the probability of a click for similar queries.
For the full architecture, see the technology overview. For the broader narrative across multiple use cases, read The Predictive Application.
See it live
This use case runs in Company AI, a reference application you run yourself. There is no hosted demo, so the link opens its illustrated tour and source on GitHub: Company AI tour on GitHub →



