Skip to content

Address autocomplete

GET
/store/geo/suggest

DEV-387 / ADR-016 — autocomplete адресов на базе Meilisearch (primary)

  • DaData Suggestions free-tier fallback (decorator под feature flag
    geo.dadata_fallback). Closes 50/50 gold-set top-3 при flag enabled;
    48/50 baseline (2 heavy-typo queries — known limitations).

Rate limited через Nginx (~30 req/min per IP) — premortem H-004.

Empty result UX (frontend, DEV-402): при пустом data UI показывает
hint «попробуйте другое написание» + ручной ввод адреса.

Pipeline (см. ADR-016 §Архитектура):

  1. suggest_normalize(q) SQL function (lower + unaccent + ё→е)
  2. Mix-script Unicode confusables normalization (DEV-386)
  3. Synonyms expansion via geo-synonyms.yaml
  4. Meilisearch search
  5. Если 0 hits и flag enabled → DaData Suggestions (free tier)

Parameters

Query Parameters

q*

Search query. Examples: "Невский 1", "СПб", "Москва ул. Ленина".
Поддерживает сокращения (ул./пр-кт/мкр/б-р/р-н/пл./пер./ш./наб.) и
colloquial city names (Питер, Мск, Ёбург) через geo-synonyms.yaml.

Type
string
Required
Min Length
1
Max Length
200
city_id

Optional scoping to specific city. Strongly recommended для
queries без явного указания города (улицы/дома) — иначе collision
risk на 89 регионах (premortem H-003 в DEV-430 spike).
Closes 4 city-query fails из gold-set при правильном применении.

Type
integer
limit

Max number of suggestions (default 10, max 20)

Type
integer
Minimum
1
Maximum
20
Default
10

Responses

List of address suggestions (top-N, sorted by relevance)

application/json
JSON
{
  
"data": [
  
  
{
  
  
  
"address_id": "string",
  
  
  
"value": "string",
  
  
  
"level": "string",
  
  
  
"highlights": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"score": 0,
  
  
  
"source": "string"
  
  
}
  
]
}

Playground

Server
Variables
Key
Value

Samples

Powered by VitePress OpenAPI