The two decisions you cannot easily undo. Mapping: dynamic versus explicit, field data types, text versus keyword and the multi-field pattern, dynamic templates, and which changes force a reindex. Analysis: the analyser chain of character filters, tokenizer and token filters, the built-in analysers, custom analysers, and testing everything with _analyze.
Topics: Dynamic mapping and its dangers · Explicit mappings and field data types · text vs keyword, and the multi-field pattern · Numeric, date, boolean, object and nested types · Dynamic templates and index templates · Which mapping changes require a reindex · The analysis chain: character filters, tokenizer, token filters · Built-in analysers: standard, simple, whitespace, keyword, language analysers · Custom analysers: stemming, stopwords, synonyms, ASCII folding · Testing with the _analyze API · search_analyzer vs analyzer, and why they can differ · Normalizers for keyword fields
- Assignments: (1) Build a custom analyser with synonyms and stemming and prove it with _analyze; (2) Diagnose a query returning nothing because of an analyser mismatch
- Capstone: Design and apply an explicit mapping plus custom analysis for a real dataset, and justify every field type