0

Have Azure search targeting a table now but we need to change it to target a view instead. After some reading realized cannot use the change tracking to do incremental indexer build, does it mean each time the indexer need to be fully rebuild then? The view contains several million rows, each time a rebuild will cost around half an hour, questions,

  • Is there a better way to do this to minimize the data latency
  • During the indexer rebuild, would it impacting the search calls

Thanks.

Bruce Johnston
  • 8,344
  • 3
  • 32
  • 42
TOMMY WANG
  • 1,382
  • 3
  • 16
  • 39

2 Answers2

1

You can use the high watermark change detection policy (documented here) with a SQL view. This ensures that when your indexer runs, only rows that have changed according to some high watermark column are indexed.

During the indexer rebuild, would it impacting the search calls

Maybe. Indexing does consume some resources and may impact search latency. It depends on your pricing tier, topology (number of replicas and partitions), and workload. If you use a change detection policy and the number of changed rows indexed during each run of the indexer is relatively small, it probably won't have much of an impact.

Bruce Johnston
  • 8,344
  • 3
  • 32
  • 42
0

To minimize the data latency when using view you can use high watermark change detection policy High water mark change detection. But

Real-time data synchronization isn't possible with an indexer. An indexer can reindex your table at most every five minutes. If data updates need to be reflected in the index sooner, we recommend pushing updated rows directly.

Change detection will not reload the data for you. It just keeps the track of records updated after last run. You will have to set scheduler to reload the data or if you want it to be real time you can use search service to upload new data directly to index. But it has quota limits.

If you need to upload large set of records change tracking will do efficiently. Instead of using scheduler we can also run the indexer using API run indexer This will reload all updated data for you.

You can track the status of indexer run using indexer status

Mayur Pawar
  • 107
  • 2
  • 16