How ranking works
Organic results are ordered by relevance to what you typed. Nothing is for sale in that ordering.
What counts
- Text match (dominant): business name and category words, accent- and case-insensitive, with prefix matching.
- Typo tolerance: trigram similarity on names, so “Starbux” still finds Starbucks.
- Category intent: “dentist” or “gym” is understood as a category, including common synonyms.
- Small, capped nudges: profile completeness (up to 0.25) and a directory check (0.1). When you share your location, closer listings get up to 0.3.
What does not count
- Payment, sponsorship, or whether a listing is claimed.
- The directory operator’s own listing (NodeDR). It follows the same rules and carries a disclosure.
Labels
- Claimed: a person reviewed evidence that an owner controls the listing.
- Verified: the directory checked specific facts. Currently no listings have this label. “Source data only” means we imported the fields from a dataset and have not independently checked them.
- Sponsored: there are no sponsored placements today. If added, they will be separate, labelled units outside organic ranking.
Not shown on purpose
Star ratings (no authentic review programme yet), “open now” (no trustworthy hours data), and a map (list results work everywhere and nothing depends on a map).
Measured, not asserted
The repository includes a relevance test set (see docs/search-ranking.md) that reports NDCG@10, zero-result rate and latency on every change.