diff --git a/crates/kebab-search/src/hybrid.rs b/crates/kebab-search/src/hybrid.rs index 7f415a9..e285915 100644 --- a/crates/kebab-search/src/hybrid.rs +++ b/crates/kebab-search/src/hybrid.rs @@ -505,6 +505,7 @@ mod tests { // a fixed UNIX_EPOCH so synthetic hits remain deterministic. indexed_at: time::OffsetDateTime::UNIX_EPOCH, stale: false, + score_kind: kebab_core::ScoreKind::Rrf, } } @@ -755,6 +756,7 @@ mod tests { chunker_version: ChunkerVersion("c1".into()), indexed_at: time::OffsetDateTime::UNIX_EPOCH, stale: false, + score_kind: kebab_core::ScoreKind::Rrf, } } diff --git a/crates/kebab-search/src/vector.rs b/crates/kebab-search/src/vector.rs index 9bf74c7..47eda97 100644 --- a/crates/kebab-search/src/vector.rs +++ b/crates/kebab-search/src/vector.rs @@ -21,7 +21,7 @@ use std::sync::Arc; use anyhow::{Context, Result}; use kebab_core::{ ChunkId, ChunkerVersion, DocumentId, Embedder, EmbeddingInput, EmbeddingKind, - IndexVersion, RetrievalDetail, Retriever, SearchHit, SearchMode, SearchQuery, + IndexVersion, RetrievalDetail, Retriever, ScoreKind, SearchHit, SearchMode, SearchQuery, SourceSpan, VectorHit, VectorStore, WorkspacePath, }; use kebab_store_sqlite::SqliteStore; @@ -326,6 +326,7 @@ fn build_hit( // (called from `App::search` / `App::search_uncached`) and the equivalent // in `RagPipeline::ask` against the configured threshold. stale: false, + score_kind: ScoreKind::Cosine, }) } diff --git a/crates/kebab-search/tests/fixtures/search/lexical/run-1.json b/crates/kebab-search/tests/fixtures/search/lexical/run-1.json index 2500cd4..d6ae0dc 100644 --- a/crates/kebab-search/tests/fixtures/search/lexical/run-1.json +++ b/crates/kebab-search/tests/fixtures/search/lexical/run-1.json @@ -26,6 +26,7 @@ "vector_rank": null, "vector_score": null }, + "score_kind": "bm25", "section_label": "Snap", "snippet": "alpha alpha", "stale": false @@ -57,6 +58,7 @@ "vector_rank": null, "vector_score": null }, + "score_kind": "bm25", "section_label": "Snap", "snippet": "alpha bravo charlie", "stale": false