Azure AI Search for Manufacturing Document Processing
Manufacturing document processing sits at an awkward intersection. The volumes are huge, the formats are heterogeneous (PDFs, CAD exports, scanned paper, Excel BOMs, engineering specs), the language is dense and domain-specific, and the consumers are both humans and automation pipelines. Azure AI Search, which Microsoft renamed from Azure Cognitive Search in late 2023, is the platform built for exactly this shape of problem. This walk-through covers the architecture patterns that graduate from proof-of-concept to industrial-scale production.
Why Manufacturing Document Processing Breaks Naive Search
A typical manufacturing organisation accumulates tens of millions of documents across decades: engineering drawings, work instructions, supplier specs, quality audit reports, non-conformance records, material data sheets, certifications. Three properties make them hostile to off-the-shelf search:
- Format diversity. Native office formats alongside scanned legacy paper, CAD exports, photos of whiteboard diagrams, and binary PLM attachments. A search system must extract text from all of them uniformly.
- Technical vocabulary. Part numbers, tolerances, material codes, and regulatory references form a domain-specific token space that general language models do not handle well without grounding.
- Structured and unstructured content co-located. A single PDF may contain both free-form descriptions and tabular BOMs. Indexing needs to preserve both.
The Azure AI Search Primitives
Three concepts do most of the work:
- Index. The searchable data store. Defines fields, types, analyzers, vector profiles, and which fields are retrievable, filterable, facetable, and sortable.
- Indexer. A scheduled or on-demand job that pulls data from a source (Azure Blob Storage, SQL, Cosmos DB) and populates the index. Manages incremental change detection via high-water-mark or deletion-detection policies.
- Skillset. A pipeline of AI-driven enrichments applied during indexing: OCR on scanned pages, key-phrase extraction, entity recognition, language detection, translation, PII redaction, custom Azure Functions.
For manufacturing workloads, the pipeline sequence is typically: Blob Storage (raw document landing zone) → Indexer → Skillset (enrichment) → Index (queryable) → Application (RAG, search UI, automation).
A Production-Shaped Index Schema
The temptation is to index every document as a single large text blob. That works for demos and fails at retrieval quality. Production schemas split content into addressable chunks with metadata that supports filtering and facet navigation.
// Azure AI Search index schema for manufacturing technical documents
{
"name": "mfg-documents-v1",
"fields": [
{ "name": "id", "type": "Edm.String", "key": true },
{ "name": "documentId", "type": "Edm.String", "filterable": true },
{ "name": "chunkIndex", "type": "Edm.Int32", "filterable": true },
{ "name": "content", "type": "Edm.String", "searchable": true, "analyzer": "standard.lucene" },
{ "name": "contentVector", "type": "Collection(Edm.Single)",
"searchable": true, "dimensions": 1536, "vectorSearchProfile": "hnsw-cosine" },
{ "name": "title", "type": "Edm.String", "searchable": true, "filterable": true },
{ "name": "partNumbers", "type": "Collection(Edm.String)", "filterable": true, "facetable": true },
{ "name": "docType", "type": "Edm.String", "filterable": true, "facetable": true },
{ "name": "plant", "type": "Edm.String", "filterable": true, "facetable": true },
{ "name": "revisionDate", "type": "Edm.DateTimeOffset", "filterable": true, "sortable": true },
{ "name": "language", "type": "Edm.String", "filterable": true, "facetable": true },
{ "name": "sourcePath", "type": "Edm.String", "retrievable": true }
],
"vectorSearch": {
"profiles": [{ "name": "hnsw-cosine", "algorithm": "hnsw-config" }],
"algorithms": [{ "name": "hnsw-config", "kind": "hnsw" }]
},
"semantic": {
"configurations": [{
"name": "mfg-semantic",
"prioritizedFields": {
"titleField": { "fieldName": "title" },
"prioritizedContentFields": [{ "fieldName": "content" }],
"prioritizedKeywordsFields": [{ "fieldName": "partNumbers" }]
}
}]
}
}
The important design choices in this schema:
- Chunked content. Every chunk gets its own entry with a
documentId+chunkIndex. Retrieval returns matching chunks, and the application reconstructs full documents on demand. - Structured metadata. Part numbers, document type, plant, revision date, and language are first-class fields, making filtering and faceting trivial at query time.
- Vector profile. Dense vector embedding per chunk enables semantic retrieval over technical language that keyword search misses.
- Semantic configuration. Microsoft's L2 re-ranking applied after initial retrieval, with prioritisation of title and part-number fields.
The Skillset That Earns Its Keep
For manufacturing corpora, the skillset typically chains five enrichment steps:
- OCR (Document Intelligence). Extract text from scanned pages, photos of drawings, and legacy PDFs where text is rasterised.
- Language detection. Identify document language so downstream analyzers pick the right tokenisation rules. Crucial for Swedish, German, Finnish corpora.
- Entity recognition. Pull part numbers, material codes, and supplier names into structured fields.
- Text split + embedding. Chunk the extracted text at roughly 500 tokens with overlap, then embed each chunk using Azure OpenAI's
text-embedding-3-large. - Custom Azure Function. Domain-specific logic such as resolving part numbers to current revision, flagging superseded documents, or redacting sensitive customer data.
Query Patterns
Manufacturing search consumers rarely type free-form questions. They type part numbers, document references, or fragments of specifications. The query pattern that serves most of this traffic is hybrid search with filters.
// Hybrid query combining keyword + vector with structured filters
POST https://{service}.search.windows.net/indexes/mfg-documents-v1/docs/search?api-version=2024-07-01
{
"search": "torque specification flange bolt M12",
"vectorQueries": [{
"kind": "vector",
"vector": [/* query embedding: 1536 floats */],
"fields": "contentVector",
"k": 50
}],
"queryType": "semantic",
"semanticConfiguration": "mfg-semantic",
"queryLanguage": "en-US",
"filter": "plant eq 'Gothenburg' and language eq 'en' and revisionDate ge 2024-01-01T00:00:00Z",
"facets": ["docType,count:10", "partNumbers,count:20"],
"top": 10,
"select": "id,documentId,chunkIndex,title,partNumbers,docType,sourcePath",
"highlight": "content"
}
The query combines three signals: a keyword search over the exact tokens the user typed, a vector search over semantic similarity, and structured filters constraining results to a specific plant, language, and recency. The semantic ranker re-orders the fused result set. The facets give the user drill-down UI.
Scale Considerations
- Service tier. Standard S1 handles tens of gigabytes and moderate query volume. Standard S2 or S3 scales to hundreds of gigabytes with high QPS. Vector-heavy workloads benefit from S3 or higher to keep HNSW indexes in memory.
- Replica and partition counts. Partitions split the index horizontally for size; replicas scale read throughput. A typical manufacturing starting point is 2 partitions, 2 replicas at S2.
- Indexer throttling. A bulk ingestion of 10M documents can run for days. Use indexer schedules and batch sizes to avoid skillset throttling on Azure OpenAI embeddings, which carry their own rate limits.
- Semantic ranker quota. Semantic queries are metered separately. Dashboard the consumption; for very high-traffic applications, pre-cache semantic-ranked results for the top popular queries.
The Swedish / European Data-Residency Angle
Swedish manufacturers increasingly require Azure deployments that keep customer data within Sweden Central or an EU region. Azure AI Search is generally available in Sweden Central, and pairing it with Azure OpenAI deployed in the same region satisfies most residency clauses. GDPR introduces additional considerations when documents include personal data in quality records, safety incidents, or supplier correspondence: the skillset can include a PII redaction step, or the indexer can exclude fields that carry identifiers.
When Azure AI Search Is Not the Right Fit
- Pure structured queries. If the workload is entirely SQL-shaped queries against normalised tables, a database is cheaper and faster.
- Graph traversals. Supply-chain dependency analysis, BOM traversal, and configurator workloads benefit more from a graph database than from a search index.
- Low-volume internal wiki. A small team with a few thousand documents is better served by a cheap SaaS search tool. Azure AI Search earns its cost at serious scale.
Operating the Index Day-to-Day
- Zero-downtime reindexing. Use the alias feature: build
mfg-documents-v2in parallel, swap the alias when verified. - Change detection. High-water-mark policies on Blob indexers catch new and modified documents. Deletion-detection via metadata tags prevents orphan entries.
- Eval set. Maintain a labelled set of queries with expected document IDs. Run it on every schema change to catch recall regressions.
- Observability. Stream indexer and query telemetry to Application Insights. Alert on indexer failure rates, average query latency, and semantic-ranker quota.
Summary
Azure AI Search is the Microsoft-native, scaled, production-tested answer for manufacturing document processing when the requirement is broad-format ingestion, hybrid keyword-plus-semantic retrieval, and rich metadata filtering. The architecture is not magic: it is an index schema designed around the access patterns, an indexer that keeps it fresh, a skillset that enriches during ingestion, and a query pattern that combines signals. Get those four right and the platform handles the scale. Get them wrong and retrieval quality stays stuck at keyword-only, which is what most first-attempt projects produce.