Azure Cognitive Search: Is it better to update 2 active indexes from a single indexer or multiple indexers?

Mitchell Wortman 0 Reputation points
2023-07-26T19:52:08.7166667+00:00

Hello!

My team uses Azure Cognitive Search as a search service over our data. My team has a single instance of a search index to which we are trying to add multi-region functionality for disaster recovery purposes. We are planning on setting a second index and keeping the 2 more or less in sync with one another (a few seconds max latency). Currently, our index is updated by a code-based solution which updates the data via REST API every 15 seconds using the changes from a few tables in our MS SQL database.

We are also planning to create a second search indexer for disaster recovery purposes. We are debating whether the second instance should be active and each indexer only updates a single index, or whether the second indexer should be kept as a failover and the active indexer should update both indexes.

Has anyone run into this situation before? Is either of these 2 options is generally considered better practice?

Thank you!

Azure AI Search
Azure AI Search
An Azure search service with built-in artificial intelligence capabilities that enrich information to help identify and explore relevant content at scale.
1,354 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Q&A Assist
    2023-07-26T19:52:08.72+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    Both options can be used to keep the two search indexes in sync with minimum latency depending on your requirements. However, for multi-region redundancy, Microsoft recommends using multiple services with search indexes in different regions, where a user is routed to the Azure Cognitive Search service that provides the lowest latency [1].

    You can implement this architecture by creating multiple services and designing a strategy for data synchronization. You can synchronize the data across multiple services either by pulling content updates into a search index by using an indexer or pushing content into an index using REST APIs [2]. If you use indexers to synchronize data, you can have multiple indexers pulling from the same data source where each indexer targets a different search index in each region [3].

    Microsoft doesn't provide an automated method of replicating search indexes across geographic regions. Instead, it recommends using multiple services with indexers and search indexes in different regions to ensure redundancy across all services. So, it is recommended to use separate indexers to update each search index if you are using multiple services with search indexes in different regions for disaster recovery purposes [1].

    References:

    1. Reliability in Azure Cognitive Search, https://learn.microsoft.com/en-us/azure/search/search-reliability#multiple-services-in-separate-geographic-regions
    2. Index large data sets in Azure Cognitive Search, https://learn.microsoft.com/en-us/azure/search/search-howto-large-index#index-with-indexers-and-the-pull-apis
    3. Indexers in Azure Cognitive Search, https://learn.microsoft.com/en-us/azure/search/search-indexer-overview#indexer-scenarios-and-use-cases
    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.