From 428f69416f13814540fd6b773a6e8a7dc2b14a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 25 Mar 2026 14:27:37 +0100 Subject: [PATCH 1/2] Commit batches when the limit is reached while iterating over children --- services/search/pkg/bleve/batch.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/services/search/pkg/bleve/batch.go b/services/search/pkg/bleve/batch.go index 78378430c6..60a3d0c867 100644 --- a/services/search/pkg/bleve/batch.go +++ b/services/search/pkg/bleve/batch.go @@ -71,6 +71,11 @@ func (b *Batch) Move(id, parentID, location string) error { if err := b.batch.Index(resource.ID, resource); err != nil { return err } + if b.batch.Size() >= b.size { + if err := b.Push(); err != nil { + return err + } + } } return nil @@ -88,6 +93,11 @@ func (b *Batch) Delete(id string) error { if err := b.batch.Index(resource.ID, resource); err != nil { return err } + if b.batch.Size() >= b.size { + if err := b.Push(); err != nil { + return err + } + } } return nil @@ -105,6 +115,11 @@ func (b *Batch) Restore(id string) error { if err := b.batch.Index(resource.ID, resource); err != nil { return err } + if b.batch.Size() >= b.size { + if err := b.Push(); err != nil { + return err + } + } } return nil @@ -142,6 +157,11 @@ func (b *Batch) Purge(id string, onlyDeleted bool) error { for _, resource := range affectResources { b.batch.Delete(resource.ID) + if b.batch.Size() >= b.size { + if err := b.Push(); err != nil { + return err + } + } } return nil From 71c0a469b99d9c0e0cb02651c6cb68b87ea36796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Duffeck?= Date: Wed, 25 Mar 2026 14:27:37 +0100 Subject: [PATCH 2/2] Reduce default batch size to prevent memory issues with large documents --- services/search/pkg/config/defaults/defaultconfig.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/search/pkg/config/defaults/defaultconfig.go b/services/search/pkg/config/defaults/defaultconfig.go index 555484bdcf..3e504350fa 100644 --- a/services/search/pkg/config/defaults/defaultconfig.go +++ b/services/search/pkg/config/defaults/defaultconfig.go @@ -64,7 +64,7 @@ func DefaultConfig() *config.Config { AckWait: 1 * time.Minute, }, ContentExtractionSizeLimit: 20 * 1024 * 1024, // Limit content extraction to <20MB files by default - BatchSize: 500, + BatchSize: 50, } }