
Similarity & recommendation
Similarity search finds items semantically close to a seed — a query, a document, or another node. It's the engine behind "more like this", related items, and candidate generation for AI.
Recommendation is the next step up: it decides which of those items to show, in what order, and why — combining several similarity signals, the graph, and what you know about the user.
| Similarity search | Recommendation | |
|---|---|---|
| Question | "What is like this?" | "What should this user see next?" |
| Signals | One (an embedding index) | Several, fused together |
| Ranking | Vector distance | Fused score + business rules |
| Personalisation | None | Boost by the user's own history |
| Output | Neighbours | A ranked, explainable list |
The building blocks, bottom to top:
| Layer | What it gives you |
|---|---|
| Embedding indexes | Vectors per node — text, graph topology, or your own |
IQuery.Similar / StartAtSimilarTextAsync |
Single-index nearest-neighbour lookups |
IQuery.ToSimilarity(...) |
The recommendation engine — many signals, fused, with rules |
Rules & FilterAsUser |
Personalise, constrain, and scope to what the user may see |
Similarity and recommendation complement keyword/hybrid search — they don't replace it. Use them together. And the whole stack is composable, not a black box: every result carries a per-signal score breakdown, so you can always answer "why was this recommended?".