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
|
// 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
|
||||||
|
|||||||
Reference in New Issue
Block a user