Curiosity
Diagram showing a seed ticket with arrows pointing to similar tickets and their similarity scores.

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?".

Similarity engine

Referenced by