fix(memory): memory_search 空查询时默认 min_similarity=0.0 触发表扫描
根因: FTS5 空查询返回 0 条,而 memory_stats 因设 min_similarity=Some(0.0) 走表扫描才正确计数。统一空查询行为。
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user