From eb645fa0c77957c5fa48ad23993489f0795d9abc Mon Sep 17 00:00:00 2001 From: Mikael Weaver Date: Thu, 17 Oct 2024 13:45:11 -0700 Subject: [PATCH] add ordering to reindex surrogate id fetch (#4686) --- .../Features/Search/SqlServerSearchService.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Microsoft.Health.Fhir.SqlServer/Features/Search/SqlServerSearchService.cs b/src/Microsoft.Health.Fhir.SqlServer/Features/Search/SqlServerSearchService.cs index edaf6a440c..cdc0c4c5b8 100644 --- a/src/Microsoft.Health.Fhir.SqlServer/Features/Search/SqlServerSearchService.cs +++ b/src/Microsoft.Health.Fhir.SqlServer/Features/Search/SqlServerSearchService.cs @@ -936,7 +936,10 @@ protected async override Task SearchForReindexInternalAsync(Search do { // Get surrogate ID ranges - ranges = await GetSurrogateIdRanges(resourceType, queryStartId, globalEndId, searchOptions.MaxItemCount, 50, true, cancellationToken); + ranges = await GetSurrogateIdRanges(resourceType, queryStartId, globalEndId, searchOptions.MaxItemCount, 10, true, cancellationToken); + + // Order the ranges by start id as they come back unordered. This ensures records aren't skipped during reindex. + ranges = ranges.OrderBy(x => x.StartId).ToList(); foreach (var range in ranges) {