1
0

fix(typesense): upsert all documents at once

This commit is contained in:
kolaente 2023-09-04 11:19:55 +02:00
parent 093b5b99a0
commit f38535b2f4
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B

View File

@ -250,6 +250,7 @@ func reindexTasks(s *xorm.Session, tasks map[int64]*Task) (err error) {
projects := make(map[int64]*Project) projects := make(map[int64]*Project)
typesenseTasks := []interface{}{}
for _, task := range tasks { for _, task := range tasks {
searchTask := convertTaskToTypesenseTask(task) searchTask := convertTaskToTypesenseTask(task)
@ -268,14 +269,19 @@ func reindexTasks(s *xorm.Session, tasks map[int64]*Task) (err error) {
return fmt.Errorf("could not fetch comments for task %d: %s", task.ID, err.Error()) return fmt.Errorf("could not fetch comments for task %d: %s", task.ID, err.Error())
} }
typesenseTasks = append(typesenseTasks, searchTask)
}
_, err = typesenseClient.Collection("tasks"). _, err = typesenseClient.Collection("tasks").
Documents(). Documents().
Upsert(searchTask) Import(typesenseTasks, &api.ImportDocumentsParams{
Action: pointer.String("upsert"),
BatchSize: pointer.Int(100),
})
if err != nil { if err != nil {
log.Errorf("Could not upsert task into Typesense", err) log.Errorf("Could not upsert task into Typesense", err)
return err return err
} }
}
return nil return nil
} }