0
Answered

Как задать приоритет регионов?

Anonymous 5 years ago updated by Дмитрий Кирилюк 5 years ago 12
Использую REST API. Задал такие ограничения для locations:

 [{ region: 'Санкт-Петербург' }, { region: 'Москва' }]

Ввожу "мира", хочу на первых позициях увидеть улицу Мира в Санкт-Петербурге, а вижу следующий список:
  • г Москва, пр-кт Мира
  • г Москва, ул Мира
  • г Санкт-Петербург, ул Мира
Питер на 3 позиции, хотя я ожидал увидеть его на первой. Как это можно исправить?

Answer

Answer
Answered
Приоритетный для пользователя город определяется через геолокацию. Если человек находится в Питере, и вводит «Мира», он увидит «г Санкт-Петербург, ул Мира». Находится в Москве — получит «г Москва, пр-кт Мира». Это в jQuery-плагине.

Если работаете через REST, укажите приоритетный город в параметре locations_boost:
{
    "locations_boost": [{"kladr_id": "78"}],
    "locations": [
        {"region": "Санкт-Петербург"}, 
        {"region": "Москва"}
    ],
    "query": "мира"
}
Under review
А почему улица Мира в Санкт-Петербурге должна быть на первой позиции?
Смотрел вопрос https://dadata.userecho.com/topic/538601-zadavat-prioritetnyij-region-v-granulyarnyih-podskazkah-po-adresu/, в котором речь шла о том, что по умолчанию предпочтение в поисковой выдаче отдается пользовательскому городу, который был определен по IP-адресу. В случае же с ограничением поискового охвата несколькими регионами необходимость в указании приоритетного города (города пользователя) остается.

Например, моя компания оказывает услуги по отправке открыток от адреса до адреса. Доставка осуществляется в трех городах: Москва, Санкт-Петербург и Вологда. На сайте есть поля для указания адресов отправления и получения. В поле с адресом отправления чаще всего будут указывать собственный город, но при этом есть возможность указать адрес в другом городе. Город пользователя имеет наивысший приоритет.

В поле с адресом получения, к примеру, по статистике чаще всего могут указывать Москву. Москва - приоритетный город.

Не думаю, что это редкий юзкейс). Было бы логично задавать приоритеты упорядочиванием регионов в параметре locations или же использовать какой-нибудь другой способ
Answer
Answered
Приоритетный для пользователя город определяется через геолокацию. Если человек находится в Питере, и вводит «Мира», он увидит «г Санкт-Петербург, ул Мира». Находится в Москве — получит «г Москва, пр-кт Мира». Это в jQuery-плагине.

Если работаете через REST, укажите приоритетный город в параметре locations_boost:
{
    "locations_boost": [{"kladr_id": "78"}],
    "locations": [
        {"region": "Санкт-Петербург"}, 
        {"region": "Москва"}
    ],
    "query": "мира"
}
Я описал другую ситуацию. Количество городов явно ограничено (в моем примере тремя городами). Плюс определять приоритетный город по геолокации не всегда уместно: город можно сменить на сайте, или в случае с полем указания адреса получения я хочу использовать самый популярный город. Поэтому вполне логично иметь возможность самому задать приоритетный город :)
Это похоже на правду) Параметр locations_boost в документации по REST API не описан
Обновите документацию)
Смотрите выше пример с locations_boost: количество городов ограничено, явно задан приоритетный город.
В первой версии комментария я этого текста не видел
Только я не понимаю, зачем вы хотите навязывать человеку самый «популярный» город Москву, если человек находится в Питере :–)
У меня в форме два поля с адресами: откуда и куда. В случае с полем "куда" желательно указывать город пользователя (если человек из Питера, то приоритет отдаем адресам Питера). А вот в поле "куда" хочется указывать адреса города, который наиболее популярен среди пользователей (в моем примере это Москва). Как-то так)
Да, надо уточнить, что доставка открытки в рамках одного города не осуществляется) Только межгород
Теперь понял, спасибо.