@@ -468,20 +468,22 @@ public extension SearchClient {
468468 /// - parameter indexName: The name of the index where to save the objects
469469 /// - parameter objects: The new objects
470470 /// - parameter waitForTasks: If we should wait for the batch task to be finished before processing the next one
471+ /// - parameter batchSize: The maximum number of objects to include in a batch
471472 /// - parameter requestOptions: The request options
472473 /// - returns: [BatchResponse]
473474 func saveObjects(
474475 indexName: String ,
475476 objects: [ some Encodable ] ,
476477 waitForTasks: Bool = false ,
478+ batchSize: Int = 1000 ,
477479 requestOptions: RequestOptions ? = nil
478480 ) async throws -> [ BatchResponse ] {
479481 try await self . chunkedBatch (
480482 indexName: indexName,
481483 objects: objects,
482484 action: . addObject,
483485 waitForTasks: waitForTasks,
484- batchSize: 1000 ,
486+ batchSize: batchSize ,
485487 requestOptions: requestOptions
486488 )
487489 }
@@ -491,20 +493,22 @@ public extension SearchClient {
491493 /// - parameter indexName: The name of the index to delete objectIDs from
492494 /// - parameter objectIDs: The objectIDs to delete
493495 /// - parameter waitForTasks: If we should wait for the batch task to be finished before processing the next one
496+ /// - parameter batchSize: The maximum number of objects to include in a batch
494497 /// - parameter requestOptions: The request options
495498 /// - returns: [BatchResponse]
496499 func deleteObjects(
497500 indexName: String ,
498501 objectIDs: [ String ] ,
499502 waitForTasks: Bool = false ,
503+ batchSize: Int = 1000 ,
500504 requestOptions: RequestOptions ? = nil
501505 ) async throws -> [ BatchResponse ] {
502506 try await self . chunkedBatch (
503507 indexName: indexName,
504508 objects: objectIDs. map { AnyCodable ( [ " objectID " : $0] ) } ,
505509 action: . deleteObject,
506510 waitForTasks: waitForTasks,
507- batchSize: 1000 ,
511+ batchSize: batchSize ,
508512 requestOptions: requestOptions
509513 )
510514 }
@@ -516,21 +520,23 @@ public extension SearchClient {
516520 /// - parameter createIfNotExists: To be provided if non-existing objects are passed, otherwise, the call will
517521 /// fail..
518522 /// - parameter waitForTasks: If we should wait for the batch task to be finished before processing the next one
523+ /// - parameter batchSize: The maximum number of objects to include in a batch
519524 /// - parameter requestOptions: The request options
520525 /// - returns: [BatchResponse]
521526 func partialUpdateObjects(
522527 indexName: String ,
523528 objects: [ some Encodable ] ,
524529 createIfNotExists: Bool = false ,
525530 waitForTasks: Bool = false ,
531+ batchSize: Int = 1000 ,
526532 requestOptions: RequestOptions ? = nil
527533 ) async throws -> [ BatchResponse ] {
528534 try await self . chunkedBatch (
529535 indexName: indexName,
530536 objects: objects,
531537 action: createIfNotExists ? . partialUpdateObject : . partialUpdateObjectNoCreate,
532538 waitForTasks: waitForTasks,
533- batchSize: 1000 ,
539+ batchSize: batchSize ,
534540 requestOptions: requestOptions
535541 )
536542 }
0 commit comments