Skip to content

Commit 1a83d28

Browse files
committed
Updated reliability guide and created multi-region article
1 parent d85e79d commit 1a83d28

File tree

4 files changed

+143
-118
lines changed

4 files changed

+143
-118
lines changed

articles/search/search-indexer-overview.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ ms.service: azure-ai-search
1010
ms.custom:
1111
- ignite-2023
1212
ms.topic: conceptual
13-
ms.date: 06/21/2025
13+
ms.date: 06/23/2025
1414
---
1515

1616
# Indexers in Azure AI Search
@@ -33,7 +33,7 @@ You can use an indexer as the sole means for data ingestion, or in combination w
3333
|----------|---------|
3434
| 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. |
3535
| 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). |
36-
| 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-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. |
36+
| 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. |
3737
| 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).|
3838

3939
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: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
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: 06/23/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. 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.
15+
16+
For more information about the reliability features of Azure AI Search, including intra-regional resiliency via availability zones, see [Reliability in Azure AI Search](search-reliability.md).
17+
18+
## Why use multiple regions?
19+
20+
If you need two or more search services, creating them in different regions can meet the following operational requirements:
21+
22+
+ [Business continuity and disaster recovery (BCDR)](/azure/reliability/disaster-recovery-overview). If there's an outage, Azure AI Search doesn't provide instant failover to another region.
23+
24+
+ 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.
25+
26+
## Multi-region architecture
27+
28+
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.
29+
30+
Azure AI Search doesn't provide an automated method of index replication across regions. However, you can [synchronize data](#data-synchronization) using indexers or REST APIs, both of which are described in the following section. You can also add Azure Traffic Manager for [request redirection](#request-failover-and-redirection).
31+
32+
The following diagram illustrates a geo-distributed set of search services:
33+
34+
:::image type="content" source="media/search-reliability/geo-redundancy.png" alt-text="Diagram that shows a cross-tab view of services by region." border="true" lightbox="media/search-reliability/geo-redundancy.png":::
35+
36+
> [!TIP]
37+
> 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.
38+
39+
## Data synchronization
40+
41+
To synchronize two or more distinct search services, you can either:
42+
43+
+ Pull content into an index using an [indexer](search-indexer-overview.md).
44+
+ Push content into an index using the [Documents - Index REST API](/rest/api/searchservice/documents/) or an equivalent API in the Azure SDKs.
45+
46+
### [Indexers](#tab/indexers)
47+
48+
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.
49+
50+
The following diagram illustrates this architecture:
51+
52+
:::image type="content" source="media/search-reliability/scale-indexers.png" alt-text="Diagram of a single data source with distributed indexer and service combinations." border="true" lightbox="media/search-reliability/scale-indexers.png":::
53+
54+
### [REST APIs](#tab/rest-apis)
55+
56+
If you use the REST APIs to [push content to 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.
57+
58+
## Data residency
59+
60+
When you create multiple search services in different regions, your content is stored in the region you chose for each service.
61+
62+
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:
63+
64+
+ [Enrichment cache](cognitive-search-incremental-indexing-conceptual.md)
65+
+ [Debug sessions](cognitive-search-debug-session.md)
66+
+ [Knowledge store](knowledge-store-concept-intro.md)
67+
68+
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).
69+
70+
## Request failover and redirection
71+
72+
For redundancy at the request level, Azure provides several [load-balancing options](/azure/architecture/guide/technology-choices/load-balancing-overview):
73+
74+
### [Azure Application Gateway](#tab/application-gateway)
75+
76+
Use [Azure Application Gateway](/azure/application-gateway/overview) to load balance between servers in a region at the application layer.
77+
78+
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.
79+
80+
### [Azure Front Door](#tab/front-door)
81+
82+
Use [Azure Front Door](/azure/frontdoor/front-door-overview) to optimize global routing of web traffic and provide global failover.
83+
84+
### [Azure Load Balancer](#tab/load-balancer)
85+
86+
Use [Azure Load Balancer](/azure/load-balancer/load-balancer-overview) to load balance between search services in a backend pool.
87+
88+
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.
89+
90+
### [Azure Traffic Manager](#tab/traffic-manager)
91+
92+
Use [Azure Traffic Manager](/azure/traffic-manager/traffic-manager-overview) to route requests to multiple geo-located websites backed by multiple search services.
93+
94+
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.
95+
96+
The following diagram illustrates search apps connecting through Traffic Manager:
97+
98+
:::image type="content" source="media/search-reliability/azure-function-search-traffic-mgr.png" alt-text="Diagram of search apps connecting through Azure Traffic Manager." border="true" lightbox="media/search-reliability/azure-function-search-traffic-mgr.png":::
99+
100+
> [!TIP]
101+
> 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.
102+
103+
---
104+
105+
As you evaluate these load-balancing options, consider the following points:
106+
107+
+ Azure AI Search is a backend service that accepts indexing and query requests from a client.
108+
109+
+ 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.
110+
111+
+ 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.
112+
113+
+ 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.
114+
115+
## Related content
116+
117+
+ [Reliability in Azure AI Search](search-reliability.md)
118+
+ [Design reliable Azure applications](/azure/architecture/framework/resiliency/app-design)

0 commit comments

Comments
 (0)