pub struct SearchHit {
pub id: IdSpace,
pub write_cursor: u64,
pub kind: String,
pub body: String,
pub score: f64,
pub branch: SoftFallbackBranch,
pub source_id: Option<String>,
pub ce_score: Option<f64>,
}Expand description
Derives Clone, Debug, PartialEq but not Eq — score: f64 forbids
total equality.
Fields§
§id: IdSpaceC-2 (0.8.19 / TC-8) — the typed, non-null, id-space-total hit id
(IdSpace). Was the interim write_cursor: u64 in prior releases; now
carries the cross-session-stable key: value is the BARE (prefix-stripped)
id, and to_prefixed (== {prefix}{value})
reproduces the pre-swap stable_id byte-for-byte (the real-gold-keying
no-op). Governed hits are l:, doc-seeded hits h:, synthetic
passages p:. This is the caller-facing identity; the positional
write_cursor below is engine-internal book-keeping.
write_cursor: u64Engine-internal positional cursor (the value id carried before the C-2
swap). Reassigned on every re-projection/re-ingest — NOT cross-session
stable, NOT the caller-facing id. Retained because the engine still needs
a positional cursor for its own book-keeping (vector rowid mapping, the
state='active' filter lookups, RRF recency/importance reweight keys,
telemetry result_ids keying, search_expand re-resolution). The SDK
bindings do NOT surface it.
kind: String§body: String§score: f64§branch: SoftFallbackBranch§source_id: Option<String>§ce_score: Option<f64>0.8.5 (EXP-0) — per-candidate cross-encoder score ce_norm = sigmoid(ce_logit) ∈ [0,1]. Some ONLY for hits inside the reranked pool
(the top pool_n when the CE model is loaded); None for the unreranked
remainder, the rerank_depth == 0 identity path, an empty list, and the
no-CE-model soft-fallback. Additive + nullable: it never participates in
ranking, so default-path ordering/scores stay byte-stable.