Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a search over a real dataset (products, movies, recipes). Requirements: define an EXPLICIT MAPPING choosing text vs keyword correctly (fields you full-text search as text, exact/filter/sort fields as keyword, dates as date); BULK-index the data with the NDJSON bulk API; write a bool query that combines a full-text `match` (query context) with a `term` filter and a `range` filter (filter context); add sorting on a keyword/numeric field and `_source` filtering to trim the response; and return highlighted snippets. Explain one place the text-vs-keyword choice mattered.
Explicit mapping with correct text/keyword/date choices; the dataset bulk-indexed via the NDJSON bulk API.
A bool query mixing a full-text match (query context) with term/range filters (filter context); highlighted snippets returned.
Sorting on a keyword/numeric field; _source filtering; a clear explanation of a text-vs-keyword decision.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A searchable index over a real dataset ## Goal Build a search over a real dataset (products, movies, recipes). Requirements: define an EXPLICIT MAPPING choosing text vs keyword correctly (fields you full-text search as text, exact/filter/sort fields as keyword, dates as date); BULK-index the data with the NDJSON bulk API; write a bool query that combines a full-text `match` (query context) with a `term` filter and a `range` filter (filter context); add sorting on a keyword/numeric field and `_source` filtering to trim the response; and return highlighted snippets. Explain one place the text-vs-keyword choice mattered. ## Acceptance criteria - [ ] Mapping & indexing: Explicit mapping with correct text/keyword/date choices; the dataset bulk-indexed via the NDJSON bulk API. - [ ] Search query: A bool query mixing a full-text match (query context) with term/range filters (filter context); highlighted snippets returned. - [ ] Retrieval polish: Sorting on a keyword/numeric field; _source filtering; a clear explanation of a text-vs-keyword decision. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.