Compose Elasticsearch / OpenSearch bool queries by dropping clauses into must, should, must_not, and filter buckets. Every change re-renders runnable JSON plus the equivalent Lucene / KQL fragment. 100% client-side.
must — must match, contributes to _score. Use for relevance-driven full-text hits.
should — optional matches that boost score; if there is no must, at least minimum_should_match (default 1) is required.
must_not — excludes docs, doesn't score.
filter — must match but doesn't score. Fastest for structured fields (keyword, term, range) and cache-friendly.
term exact keyword; terms multi-value; match analyzed text; match_phrase ordered tokens; range gte/lte on numeric/date; prefix starts-with; wildcard */?; exists field is present.