# 功能诊断指南 ## 🔍 问题:新增功能无法使用 如果您发现Graph View和摘要高亮功能无法使用,请按照以下步骤诊断: ## ✅ 第一步:检查代码是否已更新 ### 1. 确认文件已更新 检查 `static/index.html` 是否包含新功能: ```bash # 检查Graph View相关的代码 grep -n "Graph View\|tab-graph\|graph-view" static/index.html # 检查摘要高亮相关的代码 grep -n "highlighted_snippet" static/index.html ``` **应该看到**: - Tab导航按钮 - Graph View容器 - 摘要高亮处理代码 ### 2. 检查后端API ```bash # 检查Graph API grep -n "/api/search/graph" web_server.py # 检查摘要高亮 grep -n "generate_highlighted_snippet\|highlighted_snippet" search_engine.py ``` ## 🚀 第二步:重启服务器 **重要**:代码更改后必须重启服务器! ### 停止旧服务器 ```bash # 查找运行中的服务器进程 ps aux | grep "web_server.py\|uvicorn" # 停止服务器(替换PID) kill ``` ### 启动新服务器 ```bash cd /Users/papersiii/tum-search python3 web_server.py --mode user --port 8000 ``` ## 🌐 第三步:清除浏览器缓存 ### 方法1:硬刷新 - **Windows/Linux**: `Ctrl + Shift + R` - **Mac**: `Cmd + Shift + R` ### 方法2:清除缓存 1. 打开浏览器开发者工具(F12) 2. 右键点击刷新按钮 3. 选择"清空缓存并硬性重新加载" ### 方法3:使用无痕模式 在新无痕窗口中打开: ``` http://localhost:8000/ ``` ## 🔎 第四步:检查功能是否出现 ### 测试Graph View 1. **搜索任意关键词**(如 "TUM") 2. **查看搜索结果区域上方** - 应该看到两个Tab: - ✅ "List View" (列表视图) - ✅ "Graph View" (网络图视图) 3. **点击 "Graph View" Tab** - 应该显示网络图 ### 测试摘要高亮 1. **搜索任意关键词**(如 "TUM") 2. **查看搜索结果卡片中的摘要文本** 3. **关键词应该以青色加粗显示** ## 🐛 常见问题排查 ### 问题1:看不到Graph View Tab **可能原因**: - 浏览器缓存了旧页面 - 服务器没有重启 - 访问了错误的URL **解决方案**: 1. 确认访问 `http://localhost:8000/`(根路径) 2. 硬刷新页面(Ctrl+Shift+R) 3. 检查浏览器控制台是否有错误 ### 问题2:摘要高亮不显示 **可能原因**: - 搜索结果中没有 `highlighted_snippet` 字段 - 关键词在文本中不存在 - HTML渲染问题 **检查方法**: 1. 打开浏览器开发者工具(F12) 2. 切换到 **Network** 标签 3. 执行搜索 4. 点击 `/api/search?q=...` 请求 5. 查看响应中的 `results` 数组 6. 检查第一个结果是否有 `highlighted_snippet` 字段 ### 问题3:Graph View为空或报错 **可能原因**: - ECharts库未加载 - 网络图数据为空 - JavaScript错误 **检查方法**: 1. 打开浏览器控制台(F12) 2. 查看是否有JavaScript错误 3. 检查是否加载了ECharts: ```javascript typeof echarts !== 'undefined' ``` 4. 检查API响应: ```javascript fetch('/api/search/graph?q=TUM').then(r => r.json()).then(console.log) ``` ## 🔧 手动测试步骤 ### 测试1:检查后端API ```bash # 启动服务器后,测试搜索API curl "http://localhost:8000/api/search?q=TUM" | python3 -m json.tool | head -50 # 检查是否包含highlighted_snippet字段 curl "http://localhost:8000/api/search?q=TUM" | grep -o "highlighted_snippet" | head -1 ``` ### 测试2:检查Graph API ```bash # 测试Graph API curl "http://localhost:8000/api/search/graph?q=TUM&max_nodes=10" | python3 -m json.tool ``` 应该返回包含 `nodes` 和 `edges` 的JSON数据。 ### 测试3:浏览器控制台测试 在浏览器控制台中输入: ```javascript // 检查Tab元素是否存在 document.getElementById('tab-graph') // 检查Graph容器是否存在 document.getElementById('graph-container') // 检查ECharts是否加载 typeof echarts // 测试Graph API fetch('/api/search/graph?q=TUM').then(r => r.json()).then(data => { console.log('节点数量:', data.nodes?.length); console.log('边数量:', data.edges?.length); }) ``` ## 📝 功能确认清单 ### Graph View功能 - [ ] 搜索后能看到两个Tab(List View和Graph View) - [ ] 点击Graph View Tab后能显示网络图 - [ ] 网络图中有节点和连线 - [ ] 中心节点是青色,相关节点是紫色 - [ ] 点击节点可以跳转到详情页 ### 摘要高亮功能 - [ ] 搜索结果中的关键词被加粗显示 - [ ] 关键词是青色(cyan-400) - [ ] 关键词有半透明背景 - [ ] 多个关键词都会被高亮 ## 🆘 如果仍然无法使用 ### 检查清单 1. ✅ **服务器已重启** ```bash ps aux | grep web_server ``` 2. ✅ **访问正确的URL** - `http://localhost:8000/` ✅ - `http://localhost:8000/static/index.html` ✅ 3. ✅ **浏览器缓存已清除** - 使用无痕模式测试 4. ✅ **检查服务器日志** - 查看终端输出是否有错误 5. ✅ **检查浏览器控制台** - 按F12打开开发者工具 - 查看Console标签的错误信息 ### 获取帮助信息 如果仍然无法解决,请提供以下信息: 1. **服务器日志**(终端输出) 2. **浏览器控制台错误**(F12 → Console) 3. **网络请求响应**(F12 → Network → 查看 `/api/search` 响应) 4. **访问的URL** ## 🔄 快速修复步骤 ```bash # 1. 停止服务器 pkill -f "web_server.py" # 2. 确认代码已更新 git status git log --oneline -3 # 3. 清除浏览器缓存(在浏览器中操作) # 4. 重启服务器 cd /Users/papersiii/tum-search python3 web_server.py --mode user --port 8000 # 5. 在无痕窗口中访问 # http://localhost:8000/ ``` ## 📚 相关文件位置 - **前端代码**:`static/index.html` - Graph View: 第193-222行 - 摘要高亮: 第938-999行 - **后端API**: - Graph API: `web_server.py` 第223-370行 - 搜索API: `web_server.py` 第218-221行 - 摘要高亮: `search_engine.py` 第226-241行