Skip to main content
AI & Automation

Azure AI Search at Scale: Index Design, Latency and Cost Optimisation for RAG

A RAG pilot on a few thousand documents feels instant and nearly free. Then it meets the real corpus — hundreds of thousands of documents, concurrent users, and a finance team asking why the search bill tripled. Scaling Azure AI Search is less about a bigger tier and more about index design, what you re-rank, and what you stop storing. The decisions that control latency and cost are made in the schema, not the SKU.

Amit Kumar Singh - Technology Consulting Partner at MyData Insights

Technology Consulting Partner · MyData Insights

14+ years in industrial data · Former Accenture & EY · India, GCC, SEA

26 October 2026 · 10 min read

The bottom line

Azure AI Search cost and latency at scale are set by decisions most teams make without noticing. Store and index only the fields you query — marking large text fields retrievable-but-not-searchable, and compressing vectors — keeps the index small and fast. Partitions add storage and query throughput; replicas add query concurrency and availability; size them to the workload rather than guessing. Semantic ranking is per-query, so apply it selectively. Vectors dominate storage, so quantisation and dimension choice matter. The honest limit: optimisation cannot rescue an index that stores everything retrievable and re-ranks every query, and the only reliable way to size it is to load real volume and measure.

Why the pilot never warned you

A proof of concept runs on a small index, one user at a time, with every convenient option switched on because it is cheap at that size. None of those conditions hold in production. The corpus is an order of magnitude larger, dozens of users query at once, and the options that were free at pilot scale now carry a per-query or per-gigabyte price that shows up on the Azure bill.

Scaling Azure AI Search well is mostly about reversing pilot habits: indexing less, storing less, and re-ranking selectively. The service tier matters, but the schema matters more — a well-designed index on a smaller tier will beat a careless one on a larger tier for both latency and cost.

Index and field design: store and index only what you use

Every field in an Azure AI Search index has independent attributes — searchable, filterable, sortable, facetable, retrievable — and each one you enable adds index size and, for searchable and filterable, write and query cost. The common mistake is marking everything searchable 'just in case'. A large body-text field that users never keyword-search against but do need returned should be retrievable, not searchable. A code you filter on should be filterable, not searchable.

Keep the authoritative content in the system of record and store only what retrieval needs in the index: the chunk text, its vector, and the metadata you filter and cite on. Pushing whole documents, duplicate copies and unused fields into the index is the quickest way to a slow, expensive search service that is painful to reindex.

Partitions and replicas do different jobs

Two levers scale the service, and they are not interchangeable. Partitions increase storage capacity and split the index for query throughput against large data; replicas increase query concurrency and provide availability (multiple replicas are required for a read SLA). A single-partition, single-replica service is fine for a pilot and wrong for a busy production assistant.

Size them to the actual shape of the workload: a large corpus with light concurrency needs partitions more than replicas; a modest corpus with many simultaneous users needs replicas more than partitions. Both bill continuously as search units, so over-provisioning is a standing cost, not a one-off — scale up when the measured query latency or storage demands it, not pre-emptively.

Vectors are usually the storage cost driver

In a RAG index the vector fields typically dominate storage, and storage drives partition count, which drives cost. The dimension of the embedding, the number of chunks, and whether you store full-precision vectors all compound. Vector quantisation and compression reduce the footprint substantially with a small, measurable recall cost — often a good trade at scale.

Dimension choice matters too: a larger embedding is not automatically better for retrieval, and it is reliably more expensive to store and search. Measure recall on your golden set across a couple of embedding options rather than defaulting to the largest. The cheapest vector is the chunk you did not need to index because the document was duplicated or out of scope.

Spend compute where it pays

Semantic ranking and large retrieval depths are per-query costs. Applying semantic ranking to every query across the whole result set is the RAG equivalent of leaving every light on. Retrieve a sensible candidate set, re-rank the top-N, and return the top few — the accuracy gain from re-ranking 50 candidates versus 500 is usually negligible while the cost is not.

Cache where the same questions recur, which in operational settings they heavily do. A thin answer-or-retrieval cache for repeated queries cuts both latency and spend, and most enterprise assistants see a long tail of identical questions — shift handover, policy lookups, the same five SOPs — that never need to hit the full pipeline twice.

A well-designed index on a smaller tier beats a careless index on a larger tier. Reach for schema and selectivity before you reach for a bigger SKU.

Where this breaks

Optimisation has a floor set by the corpus and the SLA. If you genuinely must index millions of large documents with sub-second latency and high concurrency, the cost is what it is — no schema trick makes that free, and pretending otherwise just defers the finance conversation. Size it honestly and decide whether the use case justifies it.

Sizing cannot be modelled on paper with confidence: embedding footprint, query mix and concurrency interact in ways that only real load reveals. The reliable method is to load production-representative volume into a test service, replay realistic queries, and measure latency and search-unit consumption — then size from evidence. And reindexing a badly designed schema at scale is slow and disruptive, so the field-design decisions are worth getting right before the index is large.

What to do first

Before scaling, instrument and measure — you cannot optimise a service you are not watching.

  • Audit the index schema: turn off searchable/filterable on fields you do not query, and keep whole documents in the system of record, not the index
  • Measure where storage goes — usually vectors — and test quantisation and a smaller dimension against recall on a golden set
  • Right-size partitions (storage/throughput) and replicas (concurrency/availability) from measured load, not a guess
  • Apply semantic ranking to the top-N only, and cache repeated operational queries
  • Load production-representative volume into a test service and replay real queries before committing to a tier

If your RAG search bill or latency is climbing faster than usage, the fix is in the index design, not a bigger tier. Book 30 minutes with Amit to review your Azure AI Search schema, partition and replica sizing, and where you are spending compute you do not need. No slides, no pitch deck, no obligation to proceed.

Free Assessment

Where does your operation sit on the data maturity curve?

8 questions. 3 minutes. You get a scored breakdown across data infrastructure, analytics readiness, and automation potential — with a specific next step for your industry.

AI & AutomationAzure OpenAIAzure AI SearchRAGCostArchitecture

Your Data · Our Technology · Our Automation

Get practical insights every fortnight

Amit writes about Microsoft Fabric, Power BI, AI in operations, and digital transformation for manufacturing and supply chain leaders. Practitioner perspective - no fluff, no vendor spin.

No spam. Unsubscribe any time. Also on Substack.

FAQ

Common questions

What drives Azure AI Search cost the most for a RAG workload?

Storage and per-query compute. Vector fields usually dominate storage, which drives the partition count you pay for continuously; semantic ranking and deep retrieval drive per-query cost. The field attributes you enable (searchable, filterable) also add index size and write cost. Indexing only what you query and re-ranking selectively are the two controls that most reduce cost.

What is the difference between partitions and replicas in Azure AI Search?

Partitions add storage capacity and split the index for throughput against large data. Replicas add query concurrency and availability — you need multiple replicas for a read SLA. They are not interchangeable: a large corpus with light traffic needs partitions; a modest corpus with heavy concurrent traffic needs replicas. Both bill continuously as search units.

Should I use the largest embedding model for best retrieval?

Not by default. A larger embedding dimension is reliably more expensive to store and search and is not automatically more accurate for your corpus. Measure recall on a golden set across a couple of options, and consider vector quantisation, which cuts storage substantially for a small, measurable recall cost. Size the vector to the retrieval quality you actually need.

How do I size an Azure AI Search service before going live?

Load production-representative volume into a test service, replay realistic queries at expected concurrency, and measure latency and search-unit consumption. Sizing on paper is unreliable because embedding footprint, query mix and concurrency interact in ways only real load reveals. Size from that evidence, then scale up when measured demand requires it rather than pre-emptively.

Can we reduce cost by caching?

Yes, and operational assistants benefit heavily because the same questions recur — shift handovers, policy lookups, a handful of SOPs. A thin cache over repeated queries cuts both latency and per-query spend. It does not replace a well-designed index, but it removes a surprising share of load from the full retrieval-and-rank pipeline.

Seeing this on your shop floor?

A short call, no obligation. Tell us what you’re trying to fix and we’ll tell you plainly if and how it’s solvable.