Table of Contents

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.