0
Отвечен

Как задать сортировку по street_type?

Mikhail Andreev 6 лет назад обновлен Антон Жиянов 6 лет назад 9

Чтобы метро было раньше чем улицы?

Вводишь "Невский" и должно быть первым "метро Невский проспект", а не куча улиц, проспектов и переулков

сервис: подсказки справочник: адреса

Ответ

+1
Ответ

Да, для большинства пользователей метро менее значимы, чем улицы — поэтому они ниже в выдаче.


Если вы работаете по конкретному городу, можно ограничить им подсказки:

$("#address").suggestions({
    token: TOKEN,
    type: "ADDRESS",
    constraints: {
      label: "",
      locations: {
        region: "Санкт-Петербург"
      }
    },
    restrict_value: true
  }); 

Ещё можно подсказывать только метро.


На рассмотрении

А почему метро должно быть первым, какой у вас сценарий использования?

Наши клиенты в поиске по адресу ориентируются в первую очередь по станциям метро, улицы и проспекты для них второстепенны

Сейчас же, если сажжест сократить под дизайн (5-10 позиций результатов поиска), то станция метро вообще может не попасть в выборку:

+1
Ответ

Да, для большинства пользователей метро менее значимы, чем улицы — поэтому они ниже в выдаче.


Если вы работаете по конкретному городу, можно ограничить им подсказки:

$("#address").suggestions({
    token: TOKEN,
    type: "ADDRESS",
    constraints: {
      label: "",
      locations: {
        region: "Санкт-Петербург"
      }
    },
    restrict_value: true
  }); 

Ещё можно подсказывать только метро.


То есть сортировку (приоритет или вес) по street_type нельзя задать при запросе к API?


>Если вы работаете по конкретному городу

Нам надо работать со всеми городами

Свой приоритет или вес задать нельзя.

В городах, где есть метро люди предпочитают ориентировать по станциям метро, это больше похоже на микрорайоны. Странно что у вас станции метро имеют меньший приоритет чем переулки

Публикую два решения:

  1. https://codepen.io/adw0rd/pen/RYGMYJ - Примитивное (сортирует результат, чтобы первым шли станции метро, но из-за ограничения API на 20 результатов особо пользы не вижу)
  2. https://codepen.io/adw0rd/pen/ZMpxZO - Делает дополнительный запрос с констрейтом по street_type=метро, потом склеивает в общую выборку (сначала станции метро, потом остальное)

может кому пригодится

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