Implement information extraction solutions
This domain (13% of AI-103, roughly 6–9 scored items) tests whether you can turn unstructured content — PDFs, scanned forms, images, audio, video — into grounded, retrievable, structured data that an LLM or agent can reason over. The services in scope are Azure AI Search (indexers, skillsets, vector/semantic/hybrid retrieval, agentic retrieval), Azure AI Document Intelligence, Azure AI Content Understanding, Azure AI Vision (OCR/Read, multimodal embeddings), Azure AI Speech / Video Indexer, and the Azure AI Foundry Agent Service tools that consume them. Expect scenario questions where two services could "work" but only one meets a stated constraint (cost, latency, file type, markdown output, chunk-level citation, region, tier). Memorize service boundaries, skill names, field/index schema requirements, and the exact order of the RAG ingestion pipeline.
Ingesting and indexing documents, images, audio and video
Ingestion in Azure AI Search is done by an indexer, which binds three other objects: a data source (connection + change detection), a skillset (optional enrichment), and an index (the searchable schema). The indexer runs on demand, on a schedule (minimum interval 5 minutes), or continuously via repeated runs.
Supported indexer data sources: Azure Blob Storage, Azure Data Lake Storage Gen2, Azure Files, Azure Table Storage, Azure Cosmos DB (NoSQL, MongoDB, Gremlin preview), Azure SQL Database / SQL Managed Instance / SQL on VM, Azure Database for MySQL (preview), Fabric OneLake files, SharePoint Online (preview). There is no native indexer for Amazon S3, Google Drive, or on-prem file shares — those require a push-model application using the Documents - Index REST API / SDK or a logic app.
Change and deletion detection:
| Source | Change detection | Deletion detection |
|---|---|---|
| Blob / ADLS Gen2 | LastModified timestamp (automatic) | Native blob soft delete, or custom metadata "soft delete" column |
| Azure SQL | Integrated change tracking, or high water mark on a rowversion/datetime column | Soft-delete column policy |
| Cosmos DB | _ts property (automatic) | Soft-delete policy |
| Push API | N/A — caller controls | @search.action: delete |
Parsing modes on blob indexers: default (one blob = one document), text, delimitedText (CSV), json, jsonArray, jsonLines, and markdown (splits by headers). imageAction controls image handling: none (default), generateNormalizedImages, generateNormalizedImagePerPage. Embedded images are only extracted when imageAction is set and dataToExtract is contentAndMetadata.
Audio and video are not natively indexable by Azure AI Search. You must transcribe/analyze first, then index the output JSON/text:
| Media | Extraction service | Output to index |
|---|---|---|
| Audio files (batch) | Azure AI Speech batch transcription or Content Understanding audio analyzer | Transcript text, WebVTT, speaker diarization, summaries |
| Video | Azure AI Video Indexer or Content Understanding video analyzer | Transcript, OCR of on-screen text, key frames, scene/segment descriptions, faces |
| Images | Vision OCR/Read, Image Analysis 4.0, multimodal embeddings | Text, captions/tags, image vectors |
Tier limits you must know (Azure AI Search):
| Item | Free | Basic | S1 | S2 | S3 |
|---|---|---|---|---|---|
| Indexes | 3 | 15 | 50 | 200 | 200 |
| Max blob size parsed | 16 MB | 16 MB | 128 MB | 256 MB | 256 MB |
| Max chars extracted per blob | 32,000 | 64,000 | 4M | 8M | 16M |
| Indexer max run time | ~3–10 min | 2 hours | 2 hours | 2 hours | 2 hours |
| Semantic ranker | No | Yes | Yes | Yes | Yes |
Common traps
- Choosing an "S3 indexer for a 400 MB PDF" — no tier parses above 256 MB; split the file or use Document Intelligence/Content Understanding directly and push the result.
- Assuming the blob indexer OCRs scanned PDFs automatically. It extracts text layers only; scanned pages need
imageAction+ OCR skill, or the Document Layout / Document Intelligence path. - Assuming an indexer can pull from S3 or a website. Distractor pattern: "use an indexer" when the only valid answer is the push API or a custom crawler.
- Forgetting the 5-minute minimum schedule interval; "run every 60 seconds" answers are always wrong.
- Believing Free tier supports semantic ranker or customer-managed keys — it does not.
Worked scenario: Nightly, 5,000 scanned invoices land in ADLS Gen2; some are deleted upstream and must disappear from search within 24 hours. Choose: ADLS Gen2 data source with native blob soft delete deletion-detection policy, an indexer with imageAction=generateNormalizedImagePerPage, a skillset containing OCR, and a daily schedule. Push API is wrong (no need for custom code), and "recreate the index nightly" is wrong (cost/latency).
Unlock with a paid plan
10 more sections (about 3,941 words) continue below. Every paid plan unlocks all AI-103 study guides, the full question bank and mock exams, from $4.97/month.