0
Не ошибка

Неправильная стандартизация с предпочтительным регионом

Konstantin Stepanenko 9 лет назад обновлен 9 лет назад 8
На нашем сайте мы сделали строку ввода адреса, в которой выдаются подсказки. После ввода адреса происходит стандартизация по строке. По некоторым адресам странное поведение. Например, по адресу «улица Дмитрия Устинова д 3 кв 9» показывается верная подсказка. Если эту подсказку не выбрать и отправить запрос на стандартизацию (нажатием «сохранить»), то мы получим «Москва, б-р Дмитрия Донского д 3 кв 9». В чем может быть проблема?
(Я оставлял этот вопрос, но был не авторизован, поэтому пишу ещё раз)

Ответ

Ответ
Не ошибка
  1. Дело в том, что в запросе не указаны ориентиры для стандартизации, такие как город, регион, населенный пункт. Для корректной стандартизации нужно передавать город/область/населенный пункт в запросе.
  2. Стандартизации пока что нельзя передать предпочтительный регион.
    В вашем случае можно попробовать так: отправлять в стандартизацию только корректные данные, полученные от сервиса подсказок. А если это не вариант, то, к примеру, инжектить предпочитаемый город в запрос перед отправкой в стандартизацию.
На рассмотрении
Добрый день!

Пожалуйста, дайте точный запрос, который вы отправляете на сервис стандартизации.
Запрос: {"query":"улица устинова дом 3 кв 9","locations_boost":[{"kladr_id":78}]}
Ответ: [{"area": null, "area_type": null, "area_type_full": null, "block": null, "block_type": null, "city": null, "city_type": null, "city_type_full": null, "country": "\u0420\u043e\u0441\u0441\u0438\u044f", "fias_id": "459246c2-cb32-4794-9f88-dffa25e3405d", "flat": "9", "flat_area": "73.20", "flat_type": "\u043a\u0432", "geo_lat": "55.75537713650999", "geo_lon": "37.4067997249603", "house": "3", "house_type": "\u0434", "kladr_id": "7700000000070480005", "okato": "45268560000", "oktmo": "45319000", "postal_box": null, "postal_code": "121609", "qc": 0, "qc_complete": 0, "qc_geo": 0, "qc_house": 2, "region": "\u041c\u043e\u0441\u043a\u0432\u0430", "region_type": "\u0433", "region_type_full": "\u0433\u043e\u0440\u043e\u0434", "settlement": null, "settlement_type": null, "settlement_type_full": null, "source": "\u0443\u043b\u0438\u0446\u0430 \u0443\u0441\u0442\u0438\u043d\u043e\u0432\u0430 \u0434\u043e\u043c 3 \u043a\u0432 9", "street": "\u041e\u0441\u0435\u043d\u043d\u0438\u0439", "street_type": "\u0431-\u0440", "street_type_full": "\u0431\u0443\u043b\u044c\u0432\u0430\u0440", "tax_office": "7731", "timezone": "UTC+3", "unparsed_parts": null}]

Или:
запрос: {"query":"улица дмитрия устинова д 3 кв 9","locations_boost":[{"kladr_id":78}]}
ответ: [{"area": null, "area_type": null, "area_type_full": null, "block": null, "block_type": null, "city": null, "city_type": null, "city_type_full": null, "country": "\u0420\u043e\u0441\u0441\u0438\u044f", "fias_id": "a8f32744-cb62-4a09-be9e-54c0c04c4ccc", "flat": "9", "flat_area": null, "flat_type": "\u043a\u0432", "geo_lat": "55.56929020853665", "geo_lon": "37.575853208742195", "house": "3", "house_type": "\u0434", "kladr_id": "77000000000329600", "okato": "45293582000", "oktmo": "45906000", "postal_box": null, "postal_code": "117216", "qc": 1, "qc_complete": 10, "qc_geo": 2, "qc_house": 10, "region": "\u041c\u043e\u0441\u043a\u0432\u0430", "region_type": "\u0433", "region_type_full": "\u0433\u043e\u0440\u043e\u0434", "settlement": null, "settlement_type": null, "settlement_type_full": null, "source": "\u0443\u043b\u0438\u0446\u0430 \u0434\u043c\u0438\u0442\u0440\u0438\u044f \u0443\u0441\u0442\u0438\u043d\u043e\u0432\u0430 \u0434 3 \u043a\u0432 9", "street": "\u0414\u043c\u0438\u0442\u0440\u0438\u044f \u0414\u043e\u043d\u0441\u043a\u043e\u0433\u043e", "street_type": "\u0431-\u0440", "street_type_full": "\u0431\u0443\u043b\u044c\u0432\u0430\u0440", "tax_office": "7727", "timezone": "UTC+3", "unparsed_parts": "\u0423\u0421\u0422\u0418\u041d\u041e\u0412\u0410"}]
Запрос {"query":"улица дмитрия устинова д 3 кв 9","locations_boost":[{"kladr_id":78}]} - это запрос в подсказки.
Приведенный ответ - ответ от сервиса стандартизации.
А какие данные уходят в Стандартизацию?
Мы отправляем такой запрос на стандартизацию (https://dadata.ru/api/v2/clean/address/), чтобы указать предпочтительный регион (78 — Санкт-Петербург).

Если сделать запрос по стандартизации (просто строка «улица дмитрия устинова дом 3 кв 9»), то будет ответ:
[{"source": "улица дмитрия устинова дом 3 кв 9", "postal_code": "119333", "country": "Россия", "region_type": "г", "region_type_full": "город", "region": "Москва", "area_type": null, "area_type_full": null, "area": null, "city_type": null, "city_type_full": null, "city": null, "settlement_type": null, "settlement_type_full": null, "settlement": null, "street_type": "ул", "street_type_full": "улица", "street": "Дмитрия Ульянова", "house_type": "д", "house": "3", "block_type": null, "block": null, "flat_type": "кв", "flat": "9", "postal_box": null, "kladr_id": "7700000000029640110", "fias_id": "f85ab814-78ce-4dd2-89c4-470104986f54", "okato": "45293558000", "oktmo": "45398000", "tax_office": "7736", "flat_area": "97.50", "timezone": "UTC+3", "geo_lat": "55.69357712326226", "geo_lon": "37.56096235784994", "qc_geo": 0, "qc_complete": 0, "qc_house": 2, "qc": 1, "unparsed_parts": "УСТИНОВА"}]
Прошу прощения, у нас есть ещё проксирование запроса на стандартизацию сервером. Он немного меняет запрос и отправляет только строчку «улица дмитрия устинова дом 3 кв 9». Тогда вопросов остается два:
1) почему ответ стандартизации — улица Дмитрия Ульянова
2) как стандартизации передать предпочтительный регион (аналог kladr_id)
Ответ
Не ошибка
  1. Дело в том, что в запросе не указаны ориентиры для стандартизации, такие как город, регион, населенный пункт. Для корректной стандартизации нужно передавать город/область/населенный пункт в запросе.
  2. Стандартизации пока что нельзя передать предпочтительный регион.
    В вашем случае можно попробовать так: отправлять в стандартизацию только корректные данные, полученные от сервиса подсказок. А если это не вариант, то, к примеру, инжектить предпочитаемый город в запрос перед отправкой в стандартизацию.
Если хотите, чтобы мы добавили предпочтительный регион в стандартизацию, голосуйте за этот топик.
К сожалению, если инжектить предпочитаемый город в запрос перед отправкой в стандартизацию, то там может оказаться два города. Например, «Москва, Санкт-Петербург, ул. Ульянова д 5 кв 19», потому что Москва предпочитаемый город, а Санкт-Петербург человек ввел сам.

Но спасибо за ответ!

Сервис поддержки клиентов работает на платформе UserEcho