OpenSearch Query Building Review (Query Review)
Grounding principles are in reference/principles.md. For facts, prefer reference/kb/ (official docs).
Review order (proceed exactly like this)
- What the query is asking — result set, filter selectivity, frequency, sort/paging pattern.
- Dynamic bool check —
reference/kb/query-dsl-basics.md(filter context, term/match, builder safety). - Relevance·paging —
reference/kb/relevance-scoring.md(BM25/boost/min_score) ·reference/kb/pagination-search-after.md. - Vector/hybrid check —
reference/kb/vector-hybrid-query.md(k vs ef_search, efficient filtering, normalization/RRF). If hybrid/neural grep returns 0, state "not applicable". - Slowness diagnosis —
reference/kb/profiling-explain.md(Profile API). Provide a fix (query diff) with severity + re-measurement (recall@k·p99).
Quick checklist
- Is a no-score condition in
must? →filter/must_not(skip scoring + cache). - Does the dynamic builder enforce a field whitelist, a
termssize cap, and avoidscript/wildcard? - Is deep paging using
from+size? →search_after/PIT. - In k-NN, is
ef_search ≥ k? A variablekwith a fixedef_searchmeans a ceiling mismatch. - When a filter is present, is it efficient k-NN filtering, and does a selective filter under-fetch (over-fetch/exact fallback)?
- (hybrid) Is there a normalization/RRF processor? Are the neural ingest↔query model_id the same?
- Did a type-based client work around
termsviabool.should? → replace with the native form.
KB (read and cite first)
From reference/kb/INDEX.md: reference/kb/query-dsl-basics.md · reference/kb/relevance-scoring.md · reference/kb/vector-hybrid-query.md · reference/kb/pagination-search-after.md · reference/kb/profiling-explain.md
Deliverable
For each finding: problem → principle/KB source → query diff → re-measurement (recall@k sweep·p99). "It got faster" is confirmed only by measurement.