@@ -1091,7 +1091,8 @@ func (idx *GraphIndexer) Remove(ctx context.Context, chunkID string) error {
10911091 // 联动删除所有从属维度向量(title + summary)
10921092 for _ , dim := range graphDimensions {
10931093 if err := idx .vectorDB .Delete (ctx , chunkID + dim .suffix ); err != nil {
1094- return err
1094+ // 从属维度向量可能不存在(无对应字段可提取),不视为错误
1095+ idx .logger .Warn ("remove graph dimension vector: %v" , err )
10951096 }
10961097 }
10971098 // 从 graphDB 移除关联的节点和边(级联删除)
@@ -1302,6 +1303,27 @@ func (idx *GraphIndexer) Close(ctx context.Context) error {
13021303 return idx .graphDB .Close (ctx )
13031304}
13041305
1306+ // Clear 清空索引中的所有数据(向量 + 图谱)。
1307+ func (idx * GraphIndexer ) Clear (ctx context.Context ) error {
1308+ idx .mu .Lock ()
1309+ defer idx .mu .Unlock ()
1310+ idx .logger .Info ("GraphIndexer.Clear: clearing vectorDB" )
1311+ if err := idx .vectorDB .Clear (ctx ); err != nil {
1312+ idx .logger .Error ("GraphIndexer.Clear: vectorDB.Clear failed" , err )
1313+ return fmt .Errorf ("clear vectorDB: %w" , err )
1314+ }
1315+ idx .logger .Info ("GraphIndexer.Clear: vectorDB cleared successfully, clearing graphDB" )
1316+ if err := idx .graphDB .Clear (ctx ); err != nil {
1317+ idx .logger .Error ("GraphIndexer.Clear: graphDB.Clear failed" , err )
1318+ return fmt .Errorf ("clear graphDB: %w" , err )
1319+ }
1320+ // 重置累计统计
1321+ idx .entitiesCreated = 0
1322+ idx .relsCreated = 0
1323+ idx .logger .Info ("GraphIndexer.Clear: all stores cleared successfully" )
1324+ return nil
1325+ }
1326+
13051327// ---------------------------------------------------------------------------
13061328// 扩展方法
13071329// ---------------------------------------------------------------------------
0 commit comments