Architecture note2 lab guides2 lab guides
OpenSearch · Search and Analytics
Shard sizing, cluster yellow states, and the query that melts a node.
Outcome
- Explain the three access layers: domain policy → IAM policy → FGAC role mapping
- Explain why all three 403 failures look identical and the debugging order
- Map an IAM role to an OpenSearch FGAC role via
_plugins/_security/api/rolesmapping - Explain when to use VPC vs public endpoint
- Define an index with explicit mappings: text, keyword, float, date, geo_point, boolean
- Use multi-field mapping for fields needing both full-text search and aggregation
- Explain why mapping type changes on existing fields are forbidden
- Create an index alias and explain the zero-downtime reindex swap pattern
- Explain what
"index": falsedoes and when to use it
- Bulk index documents using NDJSON format
- Explain why Bulk API returns HTTP 200 even when individual documents fail
- Check
.errorsand.items[*].index.errorin bulk responses - Explain near-real-time indexing (1-second default refresh)
- Use
matchfor text fields andtermfor keyword fields - Build a bool query with
must,filter,shouldclauses - Explain why structured conditions belong in
filternotmust - Write a
geo_distancefilter and sort results by distance - Use
multi_matchwith field boosting andfuzziness: AUTO
- Use
- Build a faceted search returning results + sidebar counts in one request
- Use
terms,range,histogram, andstatsaggregations - Nest sub-aggregations to compute per-bucket metrics
- Explain why
termsreturns 10 buckets by default and set explicitsize - Explain why aggregations on
textfields fail
- Build DynamoDB → Streams → Lambda → OpenSearch sync pipeline
- Handle INSERT, MODIFY, and REMOVE events correctly
- Explain why forgetting REMOVE creates ghost documents
- Explain why bulk
indexis idempotent and makes Lambda retries safe - Verify end-to-end: DynamoDB write → searchable in OpenSearch within seconds