From 33c1bd38662bc51577ff0af37add9a0aaad72d29 Mon Sep 17 00:00:00 2001 From: iven Date: Sat, 11 Apr 2026 12:32:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(memory):=20memory=5Fsearch=20=E7=A9=BA?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=97=B6=E9=BB=98=E8=AE=A4=20min=5Fsimilarit?= =?UTF-8?q?y=3D0.0=20=E8=A7=A6=E5=8F=91=E8=A1=A8=E6=89=AB=E6=8F=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: FTS5 空查询返回 0 条,而 memory_stats 因设 min_similarity=Some(0.0) 走表扫描才正确计数。统一空查询行为。 --- desktop/src-tauri/src/memory_commands.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/desktop/src-tauri/src/memory_commands.rs b/desktop/src-tauri/src/memory_commands.rs index f4f360c..b9a28cd 100644 --- a/desktop/src-tauri/src/memory_commands.rs +++ b/desktop/src-tauri/src/memory_commands.rs @@ -158,10 +158,18 @@ pub async fn memory_search( // Build search query let query = options.query.unwrap_or_default(); + // When query is empty, use min_similarity=0.0 to trigger table scan + // (FTS5 requires non-empty query; without this, empty query returns 0 results) + let min_similarity = if query.trim().is_empty() { + Some(0.0) + } else { + options.min_importance.map(|i| (i as f32) / 10.0) + }; + let find_options = zclaw_growth::FindOptions { scope, limit: options.limit.or(Some(50)), - min_similarity: options.min_importance.map(|i| (i as f32) / 10.0), + min_similarity, }; let entries = zclaw_growth::VikingStorage::find(storage.as_ref(), &query, find_options).await