From 802f661f0d55b9092ff324b1ea4ccb64c7ad4151 Mon Sep 17 00:00:00 2001 From: kolaente Date: Fri, 20 Sep 2024 09:18:57 +0200 Subject: [PATCH] fix(typesense): index tasks one by one (cherry picked from commit 8181829c9efde3b210d6bc8f1640f469f8887973) --- pkg/models/typesense.go | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/pkg/models/typesense.go b/pkg/models/typesense.go index 2b49d20f9..be9272375 100644 --- a/pkg/models/typesense.go +++ b/pkg/models/typesense.go @@ -292,7 +292,6 @@ func reindexTasksInTypesense(s *xorm.Session, tasks map[int64]*Task) (err error) } projects := make(map[int64]*Project) - typesenseTasks := []interface{}{} positionsByTask, err := getPositionsByTask(s) if err != nil { @@ -304,6 +303,7 @@ func reindexTasksInTypesense(s *xorm.Session, tasks map[int64]*Task) (err error) return err } + indexedTasks := 0 for _, task := range tasks { ttask, err := getTypesenseTaskForTask(s, task, projects, positionsByTask, bucketsByTask) @@ -315,21 +315,17 @@ func reindexTasksInTypesense(s *xorm.Session, tasks map[int64]*Task) (err error) continue } - typesenseTasks = append(typesenseTasks, ttask) + _, err = typesenseClient.Collection("tasks"). + Documents(). + Upsert(context.Background(), ttask) + if err != nil { + log.Errorf("Could not upsert task into Typesense: %s", err) + return err + } + indexedTasks++ } - _, err = typesenseClient.Collection("tasks"). - Documents(). - Import(context.Background(), typesenseTasks, &api.ImportDocumentsParams{ - Action: pointer.String("emplace"), - BatchSize: pointer.Int(100), - }) - if err != nil { - log.Errorf("Could not upsert task into Typesense: %s", err) - return err - } - - log.Debugf("Indexed %d tasks into Typesense", len(typesenseTasks)) + log.Debugf("Indexed %d tasks into Typesense", indexedTasks) return nil }