Сортировка
Документ описывает базовые правила сортировки списков (событий и мест) в поиске приложения.
Эти правила применяются по умолчанию для всех поисковых выдач, если для конкретного сценария не определена специализированная логика сортировки.
Правила фильтрации (город, категории, цена и т.д.) описаны в разделе Фильтрация.
Область ответственности
Данный документ определяет только порядок элементов в списке:
- описывает, как сортируются уже отфильтрованные результаты;
- не описывает правила фильтрации;
- не описывает специализированные сценарии выдачи (страницы брендов, компаний, локаций и т.п.).
Исключения
В приложении существуют сценарии, в которых применяются отдельные правила сортировки (например, при открытии страницы бренда или локации в другом городе).
Такие сценарии не входят в область ответственности данного документа и описываются в соответствующих разделах документации.
Термины и входные данные
Основные сущности
- Родной город — город пользователя, указанный в профиле приложения.
- Выбранный город — город, явно выбранный пользователем в интерфейсе поиска.
- Геопозиция — координаты пользователя, полученные после разрешения на доступ к геолокации (опциональные данные).
- Запрос — текст, введённый пользователем в поле поиска (например, «Театр»).
- Тип — тип искомого объекта:
СобытиеМесто
Общие правила базовой сортировки
Приоритет города
Город определяется логикой фильтрации и используется как контекст для сортировки в следующем порядке:
- Выбранный город (если указан пользователем)
- Родной город пользователя
Роль геопозиции
- Геопозиция влияет только на сортировку.
- Геопозиция никогда не изменяет город фильтрации.
Правила сортировки
- По расстоянию от пользователя — если геопозиция включена и поиск ведётся в родном городе.
- От центра города — во всех остальных случаях.
Ограничение по удалённости
Если пользователь находится дальше чем 50 км от родного города, геопозиция игнорируется для целей сортировки.
Сценарии базового поиска
1. Поиск в родном городе
Входные данные:
- Запрос:
Театр - Тип:
Событие - Родной город:
Москва
1.1 Геопозиция выключена
Результат:
- Сортировка: от центра города
1.2 Геопозиция включена
Результат:
- Сортировка: по расстоянию от пользователя
2. Поиск в другом городе
Входные данные:
- Запрос:
Театр - Тип:
Событие - Родной город:
Москва - Выбранный город:
Санкт-Петербург
2.1 Геопозиция выключена
Результат:
- Сортировка: от центра города
2.2 Геопозиция включена
Результат:
- Сортировка: от центра города
Геопозиция не используется, так как поиск ведётся не в родном городе.
3. Поиск в родном городе при удалённой геопозиции
Входные данные:
- Родной город:
Москва - Геопозиция: включена
- Расстояние до родного города: более 50 км
Результат:
- Сортировка: от центра города