From f859bb5322fe7dfe160fb91515d0199543849730 Mon Sep 17 00:00:00 2001 From: imeepos Date: Thu, 24 Jul 2025 16:03:23 +0800 Subject: [PATCH] fix: outfit search --- .../commands/outfit_search_commands.rs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/apps/desktop/src-tauri/src/presentation/commands/outfit_search_commands.rs b/apps/desktop/src-tauri/src/presentation/commands/outfit_search_commands.rs index 7f925d3..8fb2025 100644 --- a/apps/desktop/src-tauri/src/presentation/commands/outfit_search_commands.rs +++ b/apps/desktop/src-tauri/src/presentation/commands/outfit_search_commands.rs @@ -612,6 +612,16 @@ fn convert_vertex_response_to_search_results( eprintln!("最终返回 {} 个过滤后的结果", results.len()); + // 按相关性评分降序排序 + results.sort_by(|a, b| { + b.relevance_score.partial_cmp(&a.relevance_score).unwrap_or(std::cmp::Ordering::Equal) + }); + + eprintln!("排序后的结果:"); + for (index, result) in results.iter().enumerate() { + eprintln!(" {}. ID={}, 相关性评分={:.3}", index + 1, result.id, result.relevance_score); + } + let total_size = vertex_response .get("totalSize") .and_then(|v| v.as_u64()) @@ -707,6 +717,21 @@ fn parse_vertex_result_to_search_result( .and_then(|v| v.as_f64()) .unwrap_or(0.0); + // 调试:打印相关性评分解析过程 + if let Some(model_scores) = vertex_result.get("modelScores") { + eprintln!("ModelScores 结构: {}", serde_json::to_string_pretty(model_scores).unwrap_or_default()); + + if let Some(relevance_data) = model_scores.get("relevance_score") { + eprintln!("Relevance Score 数据: {}", serde_json::to_string_pretty(relevance_data).unwrap_or_default()); + } else { + eprintln!("未找到 relevance_score 字段,可用字段: {:?}", model_scores.as_object().map(|obj| obj.keys().collect::>())); + } + } else { + eprintln!("未找到 modelScores 字段"); + } + + eprintln!("解析得到的相关性评分: {:.3}", relevance_score); + Ok(SearchResult { id, image_url,