Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Когда Подсказки обращаются в Фактор:

  • Вызван метод suggest с параметром count > 0, Подсказки не нашли у себя подходящих под запрос адресов.
  • Вызван метод suggest с параметром count > 0, Подсказки нашли единственный адрес, обогащают его через Фактор доп. информацией (стоимость квартиры и т.п.).
  • Вызван метод suggest с параметром count = 1. Подсказки даже не пытаются найти у себя подходящие адреса, сразу обращаются в Фактор.
  • Вызван метод findById, Подсказки нашли адрес, обогащают его через Фактор.
  • Вызван метод iplocate, Подсказки нашли адрес, обогащают его через Фактор.

Ответ от Фактора Подсказки

Если подсказки не могут найти адрес у себя и есть интеграция с Фактором, то Подсказки направят запрос в Фактор, чтобы получить разобранный адрес.

Случаи, когда Подсказки не могут у себя найти адрес:

  • если в адресе есть квартира,
  • улица с опечаткой,
  • улицы не из ФИАС,
  • в конце адреса стоит восклицательный знак.

Ответ от Фактора подсказки преобразуют в свой формат и возвращают ответ в том же виде, как будто бы адрес был найден в поисковом индексе.

Когда Подсказки "ходят" в Фактор

  • Подсказки нашли в своем индексе один вариант (предполагается, что в этом случае выбрана конкретная подсказка);

  • Подсказки не нашли в своем индексе варианты (например дом не существует в ФИАС, но есть в жизни, или вводят квартиру).

Основной вариант это когда Подсказки берут из Фактора дом или квартиру, улицу запрашивают только в случае опечатки.

Сценарии обращения к Фактору

Вызван метод suggest с параметром count > 0, Подсказки не нашли у себя подходящих под запрос адресов

В каких случаях это обычно происходит:

  • если в адресе есть квартира,
  • улица с опечаткой,
  • улицы не из ФИАС,
  • в конце адреса стоит восклицательный знак или вообще любой «мусор».

В этом сценарии Подсказки игнорируют код качества адреса и всегда возвращают адрес. Предполагается, что человек посмотрит на подсказку и решит: это то что надо или нет.

Вызван метод suggest с параметром count > 0, Подсказки нашли единственный адрес, обогащают его через Фактор

Если по запросу найден только один адрес, Подсказки сразу получают по нему всю доступную информацию из Фактора и возвращают обогащенный адрес.

Вызван метод suggest с параметром count = 1

Предполагается, что API-клиент делает запрос к Подсказкам с count = 1 только тогда, когда человек выбрал конкретную подсказку из списка. Поэтому такие запросы Подсказки сразу пробрасывают в Фактор, чтобы получить всю информацию по адресу.

Если Фактор вернёт плохой код качества, Подсказки отбросят результат и вернут пустой ответ. Так сделано, чтобы уже выбранный человеком хороший адрес внезапно не испортился. Чтобы не было ситуации, когда человек выбрал «г Москва, ул Сухонская, д 54/21», а он превратился в «г Москва, ул Сухонская, д 54, кв 21» из-за того, что Фактор плохо разобрал адрес.

Вызван метод findById, Подсказки нашли адрес, обогащают его через Фактор

По запросу может быть найден только один адрес, так что Подсказки сразу получают по нему всю доступную информацию из Фактора и возвращают обогащенный адрес.

Вызван метод iplocate, Подсказки нашли адрес, обогащают его через Фактор

По запросу может быть найден только один адрес, так что Подсказки сразу получают по нему всю доступную информацию из Фактора и возвращают обогащенный адресЕсли в Подсказках и Факторе разные версии ФИАС, то в случае отсутствия дома в Подсказках, они обратятся к Фактору и будет возвращен дом из Фактора, если получен хороший код качества. Однако в подсказке будет присутствовать только один дом — вводимый пользователем.

Особенности интеграции с Фактором

Подсказки дописывают в адрес родителя, если есть ограничение по родителю

...

(locations)

Пример: фильтрация по Самаре. Запрос "

...

авиационная". В Фактор уходит: "Самарская обл, г Самара, авиационная".
Работает только с одним родителем. Если указано несколько, то

...

родитель при запросе в фактор не будет дописан (уйдёт просто «авиационная»).

Если нет ограничения по родителю, но есть

...

приоритет города (locations_boost), то в Фактор уйдут 2 адреса в одном запросе

...

Как получаются эти два адреса:

  • Первый запрос — то, что вбили в поле подсказок — "Авиационная"«авиационная».
  • Второй запрос дополнен родителем по геобусту —  "Самара, авиационная" (геобуст по Самаре)из locations_boost —  «Самарская обл, г Самара, авиационная».

В результате подсказки могут вернуть 2 варианта, порядок будет зависеть от кодов качества — сначала выводится адрес с хорошим кодом качества.

...

Если коды качества одинаковые, то порядок ровно такой, как в запросах: сначала без дописывания родителя, потом с дописыванием.

Если Фактор на оба адреса вернул одинаковый результат, то подсказка будет одна — одинаковые варианты схлопнутся.