pub struct ExplainPoolRow {
pub rid: String,
pub score_q: f64,
pub similarity: f64,
pub lex: Option<f64>,
pub lanes_admitted: Vec<String>,
pub rank_pre_fusion: usize,
pub rank_post_fusion: usize,
pub selected: bool,
}Expand description
One candidate of the explain pool. Every row carries the stable
rid — cross-run joins on text substrings are the fragility this
field retires.
Fields§
§rid: String§score_q: f64Final score at the snapshot, quantized at the engine’s own
ranking resolution (1e-6) — the exact value rank_cmp compares.
similarity: f64Raw cosine similarity (pre-fusion signal).
lex: Option<f64>Per-query bm25 lexical strength in (0, 1]. None is
CONDITIONAL and the lane block disambiguates it (finding-1
rule: a bare null never stands alone): if
lanes["fts"].status == "ran", None means the FTS lane ran
and did NOT match this candidate; if "never_ran" /
"ran_empty", no candidate has a strength and the lane’s
reason says why. A present value is always a real match —
Some(0.0) is never emitted as a placeholder.
lanes_admitted: Vec<String>The SET of lanes that admitted or lifted this candidate — explicitly separate from numeric contributions, because a zero contribution and a lane-that-never-admitted are different facts.
rank_pre_fusion: usizeRank within this pool by similarity alone (desc, rid asc) — “before fusion”.
rank_post_fusion: usizeRank in the pool’s final comparator order — “after fusion”.
selected: boolWhether this candidate survived MMR/truncation into the results.
Trait Implementations§
Source§impl Clone for ExplainPoolRow
impl Clone for ExplainPoolRow
Source§fn clone(&self) -> ExplainPoolRow
fn clone(&self) -> ExplainPoolRow
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExplainPoolRow
impl Debug for ExplainPoolRow
Source§impl<'de> Deserialize<'de> for ExplainPoolRow
impl<'de> Deserialize<'de> for ExplainPoolRow
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ExplainPoolRow
impl RefUnwindSafe for ExplainPoolRow
impl Send for ExplainPoolRow
impl Sync for ExplainPoolRow
impl Unpin for ExplainPoolRow
impl UnsafeUnpin for ExplainPoolRow
impl UnwindSafe for ExplainPoolRow
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more