Skip to content

Commit 24bceca

Browse files
authored
Merge pull request #5632 from haileytap/reliability
[Azure Search] Update search-reliability.md
2 parents 29f73d4 + 729ec9d commit 24bceca

14 files changed

+149
-221
lines changed

articles/search/.openpublishing.redirection.search.json

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,8 @@
217217
},
218218
{
219219
"source_path_from_root": "/articles/search/search-performance-optimization.md",
220-
"redirect_url": "/azure/search/search-reliability",
221-
"redirect_document_id": true
220+
"redirect_url": "/azure/reliability/reliability-ai-search",
221+
"redirect_document_id": false
222222
},
223223
{
224224
"source_path_from_root": "/articles/search/cognitive-search-quickstart-ocr.md",
@@ -455,6 +455,11 @@
455455
"source_path_from_root": "/articles/search/search-get-started-powershell.md",
456456
"redirect_url": "/azure/search/search-get-started-text",
457457
"redirect_document_id": false
458+
},
459+
{
460+
"source_path_from_root": "/articles/search/search-reliability.md",
461+
"redirect_url": "/azure/reliability/reliability-ai-search",
462+
"redirect_document_id": false
458463
}
459464
]
460465
}

articles/search/breadcrumb/toc.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1+
items:
12
- name: Azure
23
tocHref: /azure/
34
topicHref: /azure/index
45
items:
6+
- name: Search
7+
tocHref: /azure/reliability
58
- name: AI services
69
tocHref: /azure/ai-services/
710
topicHref: /azure/ai-services/index
811
items:
912
- name: Azure AI Search
1013
tocHref: /azure/search/
1114
topicHref: /azure/search/index
12-
1315
- name: Azure
1416
tocHref: /legal/
1517
topicHref: /azure/index

articles/search/search-create-service-portal.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.author: haileytapia
88
ms.service: azure-ai-search
99
ms.update-cycle: 180-days
1010
ms.topic: how-to
11-
ms.date: 08/01/2025
11+
ms.date: 08/08/2025
1212
ms.custom:
1313
- references_regions
1414
- build-2024
@@ -115,7 +115,7 @@ In most cases, choose a region near you, unless any of the following apply:
115115

116116
1. Do you have a specific tier in mind? Check [region availability by tier](search-sku-tier.md#region-availability-by-tier).
117117

118-
1. Do you have business continuity and disaster recovery (BCDR) requirements? Create two or more search services in [regional pairs](/azure/reliability/cross-region-replication-azure#azure-paired-regions) within [availability zones](search-reliability.md#availability-zones). For example, if you're operating in North America, you might choose East US and West US, or North Central US and South Central US, for each search service.
118+
1. Do you have business continuity and disaster recovery (BCDR) requirements? Create two or more search services in [regional pairs](/azure/reliability/cross-region-replication-azure#azure-paired-regions), each with two or more replicas for [availability zones](/azure/reliability/reliability-ai-search#availability-zone-support). For example, if you're operating in North America, you might choose East US and West US, or North Central US and South Central US, for each search service.
119119

120120
1. Do you need [AI enrichment](cognitive-search-concept-intro.md), [integrated data chunking and vectorization](vector-search-integrated-vectorization.md), or [multimodal search](multimodal-search-overview.md)? For [billing purposes](cognitive-search-attach-cognitive-services.md), Azure AI Search and Azure AI services multi-service must coexist in the same region.
121121

articles/search/search-how-to-upgrade.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.author: haileytapia
88
ms.service: azure-ai-search
99
ms.topic: how-to
1010
ms.custom: references_regions
11-
ms.date: 08/01/2025
11+
ms.date: 08/08/2025
1212
---
1313

1414
# Upgrade your Azure AI Search service in the Azure portal
@@ -76,7 +76,7 @@ The date you created your service partially determines its [upgrade eligibility]
7676

7777
You can't undo a service upgrade. Before you proceed, make sure that you want to permanently increase the [storage limit](#higher-storage-limits) and [vector index size](#higher-vector-limits) of your search service. We recommend that you test this operation in a nonproduction environment.
7878

79-
The availability of your search service during an upgrade depends on how many replicas you've provisioned. With two or more replicas, your service remains available while one replica is updated. For more information, see [Reliability in Azure AI Search](search-reliability.md).
79+
The availability of your search service during an upgrade depends on how many replicas you've provisioned. With two or more replicas, your service remains available while one replica is updated. For more information, see [Reliability in Azure AI Search](/azure/reliability/reliability-ai-search).
8080

8181
To upgrade your service:
8282

articles/search/search-indexer-overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.service: azure-ai-search
99
ms.custom:
1010
- ignite-2023
1111
ms.topic: conceptual
12-
ms.date: 04/18/2025
12+
ms.date: 06/23/2025
1313
---
1414

1515
# Indexers in Azure AI Search
@@ -32,7 +32,7 @@ You can use an indexer as the sole means for data ingestion, or in combination w
3232
|----------|---------|
3333
| Single data source | This pattern is the simplest: one data source is the sole content provider for a search index. Most supported data sources provide some form of change detection so that subsequent indexer runs pick up the difference when content is added or updated in the source. |
3434
| Multiple data sources | An indexer specification can have only one data source, but the search index itself can accept content from multiple sources, where each indexer job brings new content from a different data provider. Each source can contribute its share of full documents, or populate selected fields in each document. For a closer look at this scenario, see [Tutorial: Index from multiple data sources](tutorial-multiple-data-sources.md). |
35-
| Multiple indexers | Multiple data sources are typically paired with multiple indexers if you need to vary run time parameters, the schedule, or field mappings. </br></br>[Cross-region scale out of Azure AI Search](search-reliability.md#data-sync) is a variation of this scenario. You might have copies of the same search index in different regions. To synchronize search index content, you could have multiple indexers pulling from the same data source, where each indexer targets a different search index in each region.</br></br>[Parallel indexing](search-howto-large-index.md#parallel-indexing) of very large data sets also requires a multi-indexer strategy, where each indexer targets a subset of the data. |
35+
| Multiple indexers | Multiple data sources are typically paired with multiple indexers if you need to vary run time parameters, the schedule, or field mappings. </br></br>[Cross-region scale out of Azure AI Search](search-multi-region.md#data-synchronization) is a variation of this scenario. You might have copies of the same search index in different regions. To synchronize search index content, you could have multiple indexers pulling from the same data source, where each indexer targets a different search index in each region.</br></br>[Parallel indexing](search-howto-large-index.md#parallel-indexing) of very large data sets also requires a multi-indexer strategy, where each indexer targets a subset of the data. |
3636
| Content transformation | Indexers drive [skillset execution and AI enrichment](cognitive-search-concept-intro.md). Content transforms are defined in a [skillset](cognitive-search-working-with-skillsets.md) that you attach to the indexer. You can use skills to [incorporate data chunking and vectorization](vector-search-integrated-vectorization.md).|
3737

3838
You should plan on creating one indexer for every target index and data source combination. You can have multiple indexers writing into the same index, and you can reuse the same data source for multiple indexers. However, an indexer can only consume one data source at a time, and can only write to a single index. As the following graphic illustrates, one data source provides input to one indexer, which then populates a single index:
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
---
2+
title: Multi-Region Solutions in Azure AI Search
3+
titleSuffix: Azure AI Search
4+
description: Learn about multi-region deployments in Azure AI Search, including data synchronization and request failover.
5+
author: haileytap
6+
ms.author: haileytapia
7+
ms.service: azure-ai-search
8+
ms.topic: conceptual
9+
ms.date: 08/08/2025
10+
---
11+
12+
# Multi-region deployments in Azure AI Search
13+
14+
Although Azure AI Search is a single-region service, you can achieve higher availability and resiliency by deploying multiple search services with identical configurations and content across multiple regions.
15+
16+
This article describes the components of a multi-region solution, which relies on your custom script or code to handle failover if a service becomes unavailable.
17+
18+
For more information about the reliability features of Azure AI Search, including intra-regional resiliency via availability zones, see [Reliability in Azure AI Search](/azure/reliability/reliability-ai-search).
19+
20+
## Why use multiple regions?
21+
22+
If you need two or more search services, creating them in different regions can meet the following operational requirements:
23+
24+
+ **Resiliency to region outages**. If there's an outage, Azure AI Search doesn't provide instant failover to another region.
25+
26+
+ **Fast performance for a globally distributed application**. If indexing and query requests come from around the world, users who are closest to the host data center experience faster performance. Creating more services in regions with close proximity to these users can equalize performance for everyone.
27+
28+
## Multi-region architecture
29+
30+
In a multi-region setup, two or more search services are located in different regions and have synchronized indexes. Users are automatically routed to the service with the lowest latency.
31+
32+
Azure AI Search doesn't provide an automated method of index replication across regions. However, you can synchronize data using [push or pull model indexing](search-what-is-data-import.md), both of which are described in the following section. You can also add Azure Traffic Manager or another load balancer for [request redirection](#request-failover-and-redirection).
33+
34+
The following diagram illustrates a geo-distributed set of search services:
35+
36+
:::image type="content" source="media/search-multi-region/geo-redundancy.png" alt-text="Diagram that shows a cross-tab view of services by region." border="true" lightbox="media/search-multi-region/geo-redundancy.png":::
37+
38+
> [!TIP]
39+
> For a complete implementation, see the [Bicep sample](https://github.com/Azure-Samples/azure-search-multiple-regions) on GitHub. The sample deploys a fully configured, multi-region search solution that can be modified to your regions and indexing strategies.
40+
41+
## Data synchronization
42+
43+
To synchronize two or more distinct search services, you can either:
44+
45+
+ Push content into an index using [Documents - Index (REST API)](/rest/api/searchservice/documents/) or an equivalent API in the Azure SDKs.
46+
+ Pull content into an index using an [indexer](search-indexer-overview.md).
47+
48+
### [Push APIs](#tab/push-apis)
49+
50+
If you use the REST APIs to [push content into your index](search-what-is-data-import.md#pushing-data-to-an-index), you can synchronize multiple search services by sending updates to each service whenever changes occur. Ensure that your code handles cases in which an update fails for one service but succeeds for other services.
51+
52+
### [Pull APIs (Indexers)](#tab/pull-apis)
53+
54+
If you have an indexer on one search service, you can create a second indexer on a second service to reference the same data source. Each service in each region has its own indexer and target index. Although the indexes are independent and store their own copies of the data, they remain synchronized because the indexers pull from the same source.
55+
56+
The following diagram illustrates this architecture:
57+
58+
:::image type="content" source="media/search-multi-region/scale-indexers.png" alt-text="Diagram of a single data source with distributed indexer and service combinations." border="true" lightbox="media/search-multi-region/scale-indexers.png":::
59+
60+
---
61+
62+
## Data residency
63+
64+
When you create multiple search services in different regions, your content is stored in the region you chose for each service.
65+
66+
Azure AI Search doesn't store data outside of your specified region without your authorization. Authorization is implicit when you use features that write to Azure Storage, for which you provide a storage account in your preferred region. These features include:
67+
68+
+ [Enrichment cache](cognitive-search-incremental-indexing-conceptual.md)
69+
+ [Debug sessions](cognitive-search-debug-session.md)
70+
+ [Knowledge store](knowledge-store-concept-intro.md)
71+
72+
If your search service and storage account are in the same region, network traffic uses private IP addresses over the Microsoft backbone network, so you can't configure IP firewalls or private endpoints for network security. As an alternative, use the [trusted service exception](search-indexer-howto-access-trusted-service-exception.md).
73+
74+
## Request failover and redirection
75+
76+
For redundancy at the request level, Azure provides several [load-balancing options](/azure/architecture/guide/technology-choices/load-balancing-overview):
77+
78+
### [Azure Application Gateway](#tab/application-gateway)
79+
80+
Use [Azure Application Gateway](/azure/application-gateway/overview) to load balance between servers in a region at the application layer.
81+
82+
By default, service endpoints are accessed through a public internet connection. Use Application Gateway if you set up a private endpoint for client connections that originate from within a virtual network.
83+
84+
### [Azure Front Door](#tab/front-door)
85+
86+
Use [Azure Front Door](/azure/frontdoor/front-door-overview) to optimize global routing of web traffic and provide global failover.
87+
88+
### [Azure Load Balancer](#tab/load-balancer)
89+
90+
Use [Azure Load Balancer](/azure/load-balancer/load-balancer-overview) to load balance between search services in a backend pool.
91+
92+
To use [health probes](/azure/load-balancer/load-balancer-custom-probe-overview) on a search service, you must use an HTTPS probe with `/ping` as the path.
93+
94+
### [Azure Traffic Manager](#tab/traffic-manager)
95+
96+
Use [Azure Traffic Manager](/azure/traffic-manager/traffic-manager-overview) to route requests to multiple geo-located websites backed by multiple search services.
97+
98+
Traffic Manager doesn't provide an endpoint for a direct connection to Azure AI Search. Instead, requests are assumed to flow from Traffic Manager to a search-enabled web client to a search service on the backend. In this scenario, the service and client are in the same region. If one service goes down, the client fails, and Traffic Manager redirects to the remaining client.
99+
100+
The following diagram illustrates search apps connecting through Traffic Manager:
101+
102+
:::image type="content" source="media/search-multi-region/azure-function-search-traffic-mgr.png" alt-text="Diagram of search apps connecting through Azure Traffic Manager." border="true" lightbox="media/search-multi-region/azure-function-search-traffic-mgr.png":::
103+
104+
> [!TIP]
105+
> Azure AI Search provides a [multi-region Bicep sample](https://github.com/Azure-Samples/azure-search-multiple-regions) that uses Traffic Manager for request redirection when the primary endpoint fails. This solution is useful for routing to a search-enabled client that only calls a search service in the same region.
106+
107+
---
108+
109+
As you evaluate these load-balancing options, consider the following points:
110+
111+
+ Azure AI Search is a backend service that accepts indexing and query requests from a client.
112+
113+
+ By default, service endpoints are accessed through a public internet connection. We recommend [Azure Application Gateway](/azure/application-gateway/overview) for private endpoints that originate from within a virtual network.
114+
115+
+ Azure AI Search accepts requests addressed to the `<your-search-service-name>.search.windows.net` endpoint. If you reach the same endpoint using a different DNS name in the host header, such as a CNAME, the request is rejected.
116+
117+
+ Requests from the client to a search service must be authenticated. To access search operations, the caller must have [role-based permissions](search-security-rbac.md) or provide an [API key](search-security-api-keys.md) with the request.
118+
119+
## Related content
120+
121+
+ [Reliability in Azure AI Search](/azure/reliability/reliability-ai-search)
122+
+ [Design reliable Azure applications](/azure/architecture/framework/resiliency/app-design)

0 commit comments

Comments
 (0)