saveQueryRecord 保存查询记录
(eid int64, userID *int64, req *SearchRequest, totalResults int, searchTimeMs int64)
| 3297 | |
| 3298 | // saveQueryRecord 保存查询记录 |
| 3299 | func (s *SearchService) saveQueryRecord(eid int64, userID *int64, req *SearchRequest, totalResults int, searchTimeMs int64) (int64, error) { |
| 3300 | // 确定知识库ID(如果只搜索一个知识库) |
| 3301 | var libraryID *int64 |
| 3302 | if len(req.LibraryIDs) == 1 { |
| 3303 | libraryID = &req.LibraryIDs[0] |
| 3304 | } |
| 3305 | |
| 3306 | // 如果没有用户ID(外部API调用),使用0作为占位符 |
| 3307 | var actualUserID int64 |
| 3308 | if userID != nil { |
| 3309 | actualUserID = *userID |
| 3310 | } else { |
| 3311 | actualUserID = 0 // 外部API调用时使用0表示系统调用 |
| 3312 | } |
| 3313 | |
| 3314 | // 创建查询记录 |
| 3315 | query, err := model.CreateLibraryQuery( |
| 3316 | eid, |
| 3317 | actualUserID, |
| 3318 | libraryID, |
| 3319 | req.Query, |
| 3320 | req.SearchType, |
| 3321 | req.TopK, |
| 3322 | totalResults, |
| 3323 | searchTimeMs, |
| 3324 | ) |
| 3325 | if err != nil { |
| 3326 | return 0, err |
| 3327 | } |
| 3328 | |
| 3329 | return query.ID, nil |
| 3330 | } |
| 3331 | |
| 3332 | // multiLibraryVectorSearch 多知识库向量搜索 |
| 3333 | func (s *SearchService) multiLibraryVectorSearch(eid int64, req *SearchRequest, configService *ChunkConfigService) ([]SearchResultItem, error) { |