Improve evidence search ranking and diagnostics

This commit is contained in:
lix-2026
2026-06-06 00:33:02 +08:00
parent 4dbd9a978b
commit 5157a5960c
6 changed files with 891 additions and 235 deletions
+18
View File
@@ -235,6 +235,8 @@ pub struct EvidenceSearchResult {
pub score: f64,
pub source: EvidenceLocator,
#[serde(skip_serializing_if = "Option::is_none")]
pub match_info: Option<EvidenceSearchMatchInfo>,
#[serde(skip_serializing_if = "Option::is_none")]
pub citation_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub citation_label: Option<String>,
@@ -242,12 +244,28 @@ pub struct EvidenceSearchResult {
pub citation_markdown: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct EvidenceSearchMatchInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub rank: Option<u32>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub matched_terms: Vec<String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub missing_terms: Vec<String>,
pub match_mode: String,
pub match_scope: String,
pub strong: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct EvidenceSearchResponse {
pub ok: bool,
#[serde(default)]
pub results: Vec<EvidenceSearchResult>,
#[serde(skip_serializing_if = "Option::is_none")]
pub diagnostics: Option<Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
+5 -4
View File
@@ -41,10 +41,11 @@ pub use editor::{
pub use evidence::{
EvidenceBBox, EvidenceEdge, EvidenceLocator, EvidenceOpenAction, EvidenceOpenRequest,
EvidenceRange, EvidenceReadContext, EvidenceReadRequest, EvidenceReadResponse,
EvidenceResourceKind, EvidenceSearchMode, EvidenceSearchRequest, EvidenceSearchResponse,
EvidenceSearchResult, EvidenceSearchScope, ParsedResourceArtifact, ResourceSourceMap,
SourceMapBlock, SourceMapBlockKind, SourceMapPage, SourceMapSection, SourceMapTextItem,
EVIDENCE_LOCATOR_SCHEMA, PARSED_RESOURCE_ARTIFACT_SCHEMA, RESOURCE_SOURCE_MAP_SCHEMA,
EvidenceResourceKind, EvidenceSearchMatchInfo, EvidenceSearchMode, EvidenceSearchRequest,
EvidenceSearchResponse, EvidenceSearchResult, EvidenceSearchScope, ParsedResourceArtifact,
ResourceSourceMap, SourceMapBlock, SourceMapBlockKind, SourceMapPage, SourceMapSection,
SourceMapTextItem, EVIDENCE_LOCATOR_SCHEMA, PARSED_RESOURCE_ARTIFACT_SCHEMA,
RESOURCE_SOURCE_MAP_SCHEMA,
};
pub use kernel::{
DocBufferDirtyState, DocumentBuffer, DocumentContentResult, DocumentReadEvidenceItem,