fix(memory): memory_search 空查询时默认 min_similarity=0.0 触发表扫描

根因: FTS5 空查询返回 0 条,而 memory_stats 因设 min_similarity=Some(0.0)
走表扫描才正确计数。统一空查询行为。
This commit is contained in:
iven
2026-04-11 12:32:18 +08:00
parent b90306ea4b
commit 33c1bd3866

View File

@@ -158,10 +158,18 @@ pub async fn memory_search(
// Build search query // Build search query
let query = options.query.unwrap_or_default(); 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 { let find_options = zclaw_growth::FindOptions {
scope, scope,
limit: options.limit.or(Some(50)), 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 let entries = zclaw_growth::VikingStorage::find(storage.as_ref(), &query, find_options).await