MCPcopy Create free account
hub / github.com/53AI/53AIHub / filterDeletedFiles

Method filterDeletedFiles

api/service/rag/search.go:4337–4403  ·  view source on GitHub ↗

filterDeletedFiles 过滤已删除的文件和已删除的知识库

(results []SearchResultItem)

Source from the content-addressed store, hash-verified

4335
4336// filterDeletedFiles 过滤已删除的文件和已删除的知识库
4337func (s *SearchService) filterDeletedFiles(results []SearchResultItem) []SearchResultItem {
4338 if len(results) == 0 {
4339 return results
4340 }
4341
4342 // 收集所有需要检查的文件ID和知识库ID
4343 fileIDs := make([]int64, 0, len(results))
4344 libraryIDs := make([]int64, 0, len(results))
4345
4346 for _, result := range results {
4347 if result.FileID != 0 {
4348 fileIDs = append(fileIDs, result.FileID)
4349 }
4350 if result.LibraryID != 0 {
4351 libraryIDs = append(libraryIDs, result.LibraryID)
4352 }
4353 }
4354
4355 // 创建已删除资源ID的集合
4356 deletedFileIDs := make(map[int64]bool)
4357 deletedLibraryIDs := make(map[int64]bool)
4358
4359 // 批量查询所有被删除的文件
4360 if len(fileIDs) > 0 {
4361 var deletedFiles []model.File
4362 err := s.db.Where("id IN ? AND is_deleted = ?", fileIDs, true).Find(&deletedFiles).Error
4363 if err != nil {
4364 logger.SysLogf("批量查询已删除文件时出错: %v", err)
4365 // 出错时继续处理知识库
4366 } else {
4367 for _, file := range deletedFiles {
4368 deletedFileIDs[file.ID] = true
4369 logger.SysLogf("标记已删除的文件: file_id=%d", file.ID)
4370 }
4371 }
4372 }
4373
4374 // 批量查询所有被删除的知识库
4375 // if len(libraryIDs) > 0 {
4376 // var deletedLibraries []model.Library
4377 // err := s.db.Where("id IN ?", libraryIDs).Find(&deletedLibraries).Error
4378 // if err != nil {
4379 // logger.SysLogf("批量查询已删除知识库时出错: %v", err)
4380 // // 出错时继续处理
4381 // } else {
4382 // for _, library := range deletedLibraries {
4383 // deletedLibraryIDs[library.ID] = true
4384 // logger.SysLogf("标记已删除的知识库: library_id=%d", library.ID)
4385 // }
4386 // }
4387 // }
4388
4389 // 过滤结果
4390 var filteredResults []SearchResultItem
4391 for _, result := range results {
4392 // 如果文件或知识库被删除,则过滤掉该结果
4393 if (result.FileID != 0 && deletedFileIDs[result.FileID]) ||
4394 (result.LibraryID != 0 && deletedLibraryIDs[result.LibraryID]) {

Callers 2

SearchMethod · 0.95
SearchBatchMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected