From d1494296617cad8210c3d8dfd37cb036b3612319 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Tue, 13 May 2025 11:20:29 -0700 Subject: [PATCH 1/3] Fix batch indexing. --- .../azure/search/documents/_search_client.py | 6 +++--- .../search/documents/_search_indexing_buffered_sender.py | 4 ++-- .../documents/aio/_search_indexing_buffered_sender_async.py | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_client.py b/sdk/search/azure-search-documents/azure/search/documents/_search_client.py index 9bf99c36ab80..0b5bdee77351 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_client.py @@ -702,11 +702,11 @@ def index_documents(self, batch: IndexDocumentsBatch, **kwargs: Any) -> List[Ind def _index_documents_actions(self, actions: List[IndexAction], **kwargs: Any) -> List[IndexingResult]: error_map = {413: RequestEntityTooLargeError} - + kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) batch = IndexBatch(actions=actions) try: - batch_response = self._client.documents.index(batch=batch, **kwargs) + batch_response = self._client.documents.index(batch=batch, error_map=error_map, **kwargs) return cast(List[IndexingResult], batch_response.results) except RequestEntityTooLargeError: if len(actions) == 1: @@ -718,7 +718,7 @@ def _index_documents_actions(self, actions: List[IndexAction], **kwargs: Any) -> else: result_first_half = [] batch_response_second_half = self._index_documents_actions( - actions=actions[pos:], error_map=error_map, **kwargs + actions=actions[pos:], **kwargs ) if batch_response_second_half: result_second_half = batch_response_second_half diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py b/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py index ac8fa7dfaba7..394a3660bb53 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_indexing_buffered_sender.py @@ -296,7 +296,7 @@ def _index_documents_actions(self, actions: List[IndexAction], **kwargs) -> List if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") from ex batch_response_first_half = self._index_documents_actions( - actions=actions[:pos], error_map=error_map, timeout=remaining, **kwargs + actions=actions[:pos], timeout=remaining, **kwargs ) if len(batch_response_first_half) > 0: result_first_half = batch_response_first_half @@ -307,7 +307,7 @@ def _index_documents_actions(self, actions: List[IndexAction], **kwargs) -> List if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") from ex batch_response_second_half = self._index_documents_actions( - actions=actions[pos:], error_map=error_map, timeout=remaining, **kwargs + actions=actions[pos:], timeout=remaining, **kwargs ) if len(batch_response_second_half) > 0: result_second_half = batch_response_second_half diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py index c1a1ddd363bf..d375f472e3ac 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py @@ -299,7 +299,7 @@ async def _index_documents_actions(self, actions: List[IndexAction], **kwargs: A if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") from ex batch_response_first_half = await self._index_documents_actions( - actions=actions[:pos], error_map=error_map, **kwargs + actions=actions[:pos], **kwargs ) if len(batch_response_first_half) > 0: result_first_half = batch_response_first_half @@ -310,7 +310,7 @@ async def _index_documents_actions(self, actions: List[IndexAction], **kwargs: A if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") from ex batch_response_second_half = await self._index_documents_actions( - actions=actions[pos:], error_map=error_map, **kwargs + actions=actions[pos:], **kwargs ) if len(batch_response_second_half) > 0: result_second_half = batch_response_second_half From fb896baa264a49ea30f89dcf32096ae3c9a6e050 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Tue, 13 May 2025 11:21:52 -0700 Subject: [PATCH 2/3] update changelog --- sdk/search/azure-search-documents/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sdk/search/azure-search-documents/CHANGELOG.md b/sdk/search/azure-search-documents/CHANGELOG.md index 223adf032e8d..0cd356aa57d2 100644 --- a/sdk/search/azure-search-documents/CHANGELOG.md +++ b/sdk/search/azure-search-documents/CHANGELOG.md @@ -38,6 +38,10 @@ - `azure.search.documents.indexes.models.RankingOrder` - `azure.search.documents.indexes.models.SearchIndexPermissionFilterOption` +### Bugs Fixed + +- Fixed the issue batching in upload_documents() did not work. #40157 + ### Other Changes - Updated the API version to "2025-05-01-preview" From 54d9cb47813d7558df1fbaf4293a4e62ab3b0003 Mon Sep 17 00:00:00 2001 From: Xiang Yan Date: Tue, 13 May 2025 11:23:08 -0700 Subject: [PATCH 3/3] updates --- .../azure/search/documents/_search_client.py | 2 +- .../documents/aio/_search_indexing_buffered_sender_async.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/search/azure-search-documents/azure/search/documents/_search_client.py b/sdk/search/azure-search-documents/azure/search/documents/_search_client.py index 0b5bdee77351..84c89a53a521 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/_search_client.py +++ b/sdk/search/azure-search-documents/azure/search/documents/_search_client.py @@ -702,7 +702,7 @@ def index_documents(self, batch: IndexDocumentsBatch, **kwargs: Any) -> List[Ind def _index_documents_actions(self, actions: List[IndexAction], **kwargs: Any) -> List[IndexingResult]: error_map = {413: RequestEntityTooLargeError} - + kwargs["headers"] = self._merge_client_headers(kwargs.get("headers")) batch = IndexBatch(actions=actions) try: diff --git a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py index d375f472e3ac..9990a7dca659 100644 --- a/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py +++ b/sdk/search/azure-search-documents/azure/search/documents/aio/_search_indexing_buffered_sender_async.py @@ -299,7 +299,7 @@ async def _index_documents_actions(self, actions: List[IndexAction], **kwargs: A if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") from ex batch_response_first_half = await self._index_documents_actions( - actions=actions[:pos], **kwargs + actions=actions[:pos], timeout=remaining, **kwargs ) if len(batch_response_first_half) > 0: result_first_half = batch_response_first_half @@ -310,7 +310,7 @@ async def _index_documents_actions(self, actions: List[IndexAction], **kwargs: A if remaining < 0: raise ServiceResponseTimeoutError("Service response time out") from ex batch_response_second_half = await self._index_documents_actions( - actions=actions[pos:], **kwargs + actions=actions[pos:], timeout=remaining, **kwargs ) if len(batch_response_second_half) > 0: result_second_half = batch_response_second_half