Power Search Syntax Reference

This page documents every field of the query grammar behind Power Search and the other finders: what each constraint means, how results are ordered, which inputs are rejected, and what source evidence does and does not establish. It is generated from the engine's normative query-language contract, so it matches what actually runs.

Status: normative product contract for query schema 2.

Schema 2 added the expansion constraints (regex, letter_vars, distinct_vars, stress_pattern, initial_phoneme, final_phoneme, contains_phonemes) and deliberately rotated every canonical filter, order, and request identity. Schema 1 identities and cached ETags are not comparable across the boundary.

The Word Index queries **normalized spelling records in one named lexical build**. A match means that a record in that build satisfies every selected constraint. It does not assert that the spelling is universally valid English, common in every context, or accepted by a particular game.

The public JSON boundary and the interactive Finder use the same typed query. The named finder tools on this site are presets over that query; they are not independent matching engines.

Fields

All constraints are combined with logical AND unless a field explicitly says otherwise.

Field Meaning
exactMatch one normalized spelling exactly.
lengthRequire one character length.
min_length, max_lengthInclusive character-length range.
patternOne token per position. ASCII letters are literals, _ is one unknown position, and [abc] accepts one listed letter.
prefixRequire this starting sequence.
suffixRequire this ending sequence.
containsRequire this contiguous sequence anywhere.
lettersRequire these letters in any order. Repetition is significant: eel requires two e values and one l.
excludeReject a spelling containing any listed letter. Order and repetition have no meaning.
min_countsPer-letter minimum counts, for example {\"e\": 2}. The GET adapter also accepts the compact token syntax e:2,l:1 (separators :, =, or x).
max_countsPer-letter maximum counts. Zero is meaningful and is equivalent to excluding that letter. The GET adapter accepts the same compact token syntax as min_counts.
anagram_ofRequire exactly the same multiset of letters. The public Finder/API treats this as “find other rearrangements” and excludes the submitted spelling before counting and pagination.
rack, blanksRequire that a spelling can be made from a subset of the rack. A blank supplies one missing letter; no tile may be used twice. An explicitly empty rack plus positive blanks is a valid blanks-only rack.
regexAnchored full match of the normalized spelling against a bounded regular-expression grammar: literals a-z, ., classes [abc]/[a-z]/[^abc], groups, alternation, and quantifiers ? * + {m} {m,} {m,n}. No backslash escapes, no extension groups ((?...)), anchors only at the boundaries (and stripped — ^cat$ and cat share one identity). Denial-of-service guards reject quantified groups containing quantifiers or alternation, repetition bounds above 45, patterns above 120 characters, and patterns exceeding an ambiguity budget over quantifiers.
letter_varsCase-sensitive Qat-style positional pattern implying an exact length: lowercase letters are literals, _ is one unknown position, and uppercase letters are variables that must stand for the same letter at every occurrence (at most 10 distinct variables). Variables are renamed in order of first appearance, so XYYX and ABBA share one identity.
distinct_varsWith letter_vars, require different variables to stand for different letters. Normalized away when fewer than two distinct variables exist.
stress_patternDigits 0 (unstressed), 1 (primary), 2 (secondary), one per derived syllable. Match when ANY retained CMUdict pronunciation variant's derived stress string equals it exactly. Records without pronunciation evidence do not match.
initial_phoneme, final_phonemeStress-stripped uppercase ARPABET phoneme (for example K, AE, OW). Match when ANY retained pronunciation variant starts/ends with that sound. Validated against the 39-symbol ARPABET inventory.
contains_phonemesSet of stress-stripped ARPABET phonemes. Match when a SINGLE retained pronunciation variant contains every listed sound (variant-coherent AND); sounds spread across different variants do not match.
syllablesMatch when any retained CMUdict pronunciation variant has the deterministic vowel-phoneme count. Records without pronunciation evidence do not match.
rhymes_withCompare every retained target and candidate CMUdict-derived rhyme key. A target without pronunciation evidence has no rhyme result set. The public Finder/API excludes the submitted target spelling before counting and pagination.
rhyme_typeperfect means a normalized last-stressed-vowel rhyme key matches. coda_proxy is the limited same-final-consonant-sequence/different-nucleus proxy; compatibility value near maps to it. vowel requires a shared vowel nucleus with a different coda. Neither proxy is a general poetic-nearness judgement.
tiersRequire one of the selected build-specific frequency tiers.
max_tierCompatibility shorthand for tiers 1 through this value.
source_idsRequire evidence from every named, versioned source. Evidence is source-specific: spelling-list membership, a frequency observation, or a pronunciation record. Source selection never implies a generic validity claim.
game_list_idsRequire membership in every named source-bounded game list. The current enable value means only membership in the pinned ENABLE artifact.
safeApply the first-party offensive-term display policy when true.
sortusefulness, frequency, or alphabetical, as defined below.
limit, offsetA bounded window over the fully filtered, deterministically ordered set. The public API returns at most 200 rows per request and accepts offsets through 10,000.

An empty query is valid for internal analysis but the public Finder does not automatically run it. It would describe the selected source/tier scope, not “all English words.”

Ordering

Every order is total and stable so adjacent pages cannot overlap merely because two records have the same score.

  • usefulness orders by the versioned query score descending, then tier ascending, internal frequency proxy descending, normalized spelling, and build-scoped record ID.
  • frequency orders by the build's internal frequency proxy descending, then tier, normalized spelling, and build-scoped record ID. The proxy can include source-list fallbacks and is not a universal corpus frequency.
  • alphabetical orders by normalized spelling and then build-scoped record ID.

The default interactive scope is tiers 1–2 with usefulness ordering. People can explicitly include extended/fallback tiers. The API preserves its documented compatibility default where required, but always returns the normalized state that actually executed. The Finder requests 100 rows at a time and renders at most 200 rows for one query state; refining the query is required to view a different window after that bound.

Examples

{
  "pattern": "c_t",
  "exclude": "rx",
  "max_tier": 2,
  "sort": "usefulness"
}

Find higher-ranked three-position spellings beginning with c, ending with t, and containing neither r nor x.

{
  "rack": "retains",
  "blanks": 1,
  "min_counts": {"r": 1},
  "source_ids": ["enable"],
  "sort": "alphabetical"
}

Find normalized spellings that can be made from some of those tiles plus one blank, contain r, and occur in the pinned ENABLE artifact. This does not claim acceptance by any current game ruleset.

{
  "rhymes_with": "time",
  "rhyme_type": "perfect",
  "syllables": 1,
  "max_tier": 3
}

Find records where at least one retained CMUdict-derived pronunciation shares a perfect-rhyme key with a retained pronunciation of time and has one derived syllable.

Source-evidence semantics

Source predicates operate on a sealed, build-time evidence index rather than inferring facts from a display label at request time. idx_source.bin contains one build-bound posting set for each declared source. A spelling-list source is posted when that source contributed the normalized spelling, the frequency source is posted when the record has a frequency observation, and CMUdict is posted when the record has pronunciation evidence. Selecting several source_ids intersects those posting sets, so every selected evidence condition must hold.

These evidence classes establish different facts. CMUdict evidence does not establish common use, frequency evidence does not establish game-list membership, and appearance in a spelling list does not establish universal English validity. The source index is compiled and sealed with the lexical release, and its source catalog and dimensions are validated when the engine loads.

Invalid and impossible states

Malformed syntax is rejected rather than silently broadened. Examples include unbalanced character classes, punctuation outside the source normalization profile, negative or duplicate count entries, more blanks than the declared bound, unknown source IDs, and unsupported sort/rhyme values. Duplicate count entries are rejected even when they repeat the same value; their order must never decide the effective constraint.

Syntactically valid but contradictory constraints are also rejected before execution: an exact length outside a range, a required and excluded letter, a minimum count above its maximum, or a pattern length that conflicts with an explicit length. A legitimate query with zero records returns an empty result and recovery suggestions; it is not rewritten into a less constrained query.

Result evidence and downloads

Each result carries the build ID, data version, source evidence, stable fact IDs, and a constraint-specific explanation of why it matched. Counts and scores identify their transformation contracts and query identity.

Bulk/result download is a separate licence decision. The control is disabled while any contributing spelling source lacks affirmative redistribution approval. Visible interactive results do not create a right to republish the compiled list.

Search eligibility

Finder and named-tool query states are arbitrary tool states. They remain noindex, nofollow, have no canonical ownership, are absent from sitemaps, and are not emitted as crawlable internal links. The general Finder serializes its share state in a URL fragment, which is restored in the browser but never sent as another server-side document URL.

Generated from the repository contract document docs/query-language.md for data version v1/2026.07-lexical.6.