Country Search Engine
Ranked, accent-insensitive, purely local country search.
Matching is deterministic and allocation-light: the country fields are normalized once when the dataset is built, so a query does one pass over the candidate list with only substring comparisons. That is fast enough to run synchronously on every keystroke for the full 236-country dataset — there is deliberately no debounce on local search, because the sub-millisecond filter makes the list feel immediate.
Ranking
Results are ordered by match quality first and country name second:
| Rank | Match |
|---|---|
| 0 | Country name equals the query |
| 1 | Country name starts with the query |
| 2 | ISO alpha-2 or alpha-3 equals the query |
| 3 | Dial code equals the query |
| 4 | Country name contains the query |
| 5 | An alternative name contains the query |
| 6 | ISO alpha-2 or alpha-3 starts with the query |
| 7 | Dial code starts with the query |
The last two tiers are partial-input fallbacks so a half-typed code ("25", "ke") still surfaces something, without ever outranking a real name or exact-code match.
Ties break on Country.displayName so the same query always produces the same order.