Class EmailKnowledgeLookup
- Namespace
- MailFathom.Application.Retrieval
- Assembly
- MailFathom.Application.dll
What one lookup found, how it ranked it, and what it considered before it got there.
public sealed record EmailKnowledgeLookup : IEquatable<EmailKnowledgeLookup>
- Inheritance
-
EmailKnowledgeLookup
- Implements
- Inherited Members
Remarks
The two numbers beside the passages are the only way anything above this port can say what a retrieval cost a
mailbox: CandidateCount is what a query resembled, Passages.Count is what survived being
judged against it, and their difference is what a deployment's relevance filter did. Neither is observable from the
passages alone, and both are bounded counts rather than anything about the mail they describe.
The mode travels with them for the reason a search publishes it to its own caller: lexical ranking finds the words a query carries and hybrid ranking also finds mail whose meaning is close, so which one answered decides how a further query is worth wording. It describes the instance, so it is reported even by a lookup that found nothing.
An implementation that judges nothing reports a candidate count equal to what it hands over and no fallback, which Unfiltered(IReadOnlyList<EmailKnowledgePassage>, EmailSearchRetrievalMode) is what states — so the pair reads the same way whether or not a deployment turned a second pass on, instead of a caller having to know which shape of retrieval it is holding.
Constructors
- EmailKnowledgeLookup(IReadOnlyList<EmailKnowledgePassage>, EmailSearchRetrievalMode, int, bool)
What one lookup found, how it ranked it, and what it considered before it got there.
Properties
- CandidateCount
How many candidates the ranking produced before any relevance filtering narrowed them.
- Passages
The passages the lookup hands over, most relevant first.
- RelevanceFilterFellBack
Whether a relevance judgement could not be made, so candidates were handed over unjudged.
- RetrievalMode
How the eligible mail was ranked, which is the instance's own capability rather than anything the query asked for.
Methods
- Unfiltered(IReadOnlyList<EmailKnowledgePassage>, EmailSearchRetrievalMode)
Reports a lookup that judged nothing, so everything it ranked is everything it hands over.