Поиск 2.0
Содержание
Термины
Задачи и преимущества поиска 2.0
Главная задача модуля поиска 2.0 — организация поиска авиарейсов по нескольким реквизитам для каждой ГДС, с целью получить максимально полную выдачу с максимально выгодными ценами.
Реквизиты поиска, настроенные под оптимальные цены в определенной зоне или для определенных авиакомпаний, могут возвращать неудовлетворительное общее количество результатов.
Оптимальный набор можно получить объединяя результаты из:
+ нескольких ГДС;
+ нескольких пакетов реквизитов в каждой ГДС;
+ параллельных запросов на любые рейсы или только прямые в один источник
Частный случай использования:
При использовании стандартного запроса «Получить любые рейсы по минимальным тарифам в ГДС» в ответе мы получаем строго ограниченное количество результатов, отсортированных по цене. В эту выдачу не войдут многие удобные прямые перелеты, так как будут вытеснены более дешевыми рейсами с длительными пересадками.
Для формирования выдачи с минимальными тарифами и достаточным количеством прямых рейсов модуль позволяет запрашивать один и тот же источник параллельно: стандартно по любым рейсам с минимальными тарифами и одновременно только по прямым рейсам.
Кроме того, поиск 2.0 имеет следующие преимущества:
- Фильтры запросов поиска
- Упрощенный интерфейс настройки фильтров результатов
- Более гибкие настройки фильтров (возможность создания сложных правил)
- Упрощенный интерфейс микшера результатов
- Возможность тонкой настройки поиска под конкретных пользователей системы
- Возможность получить отладочную информацию по поиску
В поиск 2.0 уже включен доработанный модуль «премаршрутизатор»:
- Появилась возможность создавать пакеты реквизитов с любым количеством реквизитов для бронирования и выписки (определяются по авиакомпаниям)
- Добавлены параметры премаршрутизации, возможность установки признака "кроме выбранных".
Для нового модуля все процедуры поиска (премаршрутизация, фильтрация и микширование) были переписаны с нуля, скорость работы максимально оптимизирована.
Устаревшие настройки и разделы административного модуля, при включении модуля перестают отображаться.
Примеры использования
- У Агентства есть прямой договор с Авиакомпанией (АК) и есть субагентский договор, по которому АК дает больше комиссию, чем есть у Агентства, в прямом договоре с АК. С помощью модуля Поиска 2.0 вы можете конкретный список АК искать по одному Источнику Перевозки, а все остальные по другому.
- У Агентства есть несколько Источников Перевозки в разных зонах покрытия. Известно, что разные АК, в разных зонах покрытия имеют разные тарифы. Модуль Поиска 2.0 позволяет искать одновременно в нескольких Источниках перевозки.
Подключение модуля
Модуль включается администратором MuteLab. После этого будет доступен раздел настроек «Авиабилеты» - «Процесс поиска 2.0».
При этом поиск продолжает работать в старом режиме со старыми настройками. Для полного перехода на поиск 2.0, его необходимо включить в новом разделе на странице «Тонкая настройка» с помощью галочки напротив «Процесс поиска 2.0 включен» для всего агентства (сначала его рекомендуется включить для отдельного пользователя, с целью проведения проверки/тестирования).
При отключении опции поиск возвращается к старому режиму, но доступ к старым настройкам поиска можно получить только отключив модуль полностью.
При включении нового поиска настройки реквизитов остаются прежними.
Справочники контрактных авиакомпаний, комиссий и сборов сохраняются, но к каждой записи будет добавлена новая опция для выбора допустимых GDS / пакетов правила
Пример на форме:
Пример в таблице:
С новым режимом полностью несовместимы старые настройки премаршрутизатора, микшера. Их нужно настроить заново.
Удалены и не используются черные списки направлений и авиакомпаний. Такие ограничения на результаты поиска должны задаваться через настройку фильтров.
Описание работы модуля
Поиск разбивается на этапы:
- По параметрам поиска выполняется премаршрутизация: определяется набор допустимых пакетных реквизитов для указанного направления
- Параллельные запросы в GDS (количество запросов = количество допустимых пакетов)
- Результаты поиска фильтруются (удаляются рейсы, не удовлетворяющие параметрам фильтров)
- Одинаковые перелеты из разных источников микшируются, согласно настройкам микшера.
- Результаты сохраняются и отображаются пользователю
Пакетные реквизиты
Поиск невозможен без пакетов реквизитов, их нужно настроить в первую очередь.
По умолчанию созданный пакет будет использоваться для любого поиска. Если в пакете заданы географические параметры, то они должны совпасть с параметрами поиска, иначе пакет задействован не будет.
Если задан конкретный аэропорт, его страну указывать не нужно. При конфликте параметров (аэропорт в Москве, страна Франция) правило работать не будет. Сложные условия проще определять с параметрами помеченными опцией "кроме".
Страница ввода Пакетных реквизитов выглядит следующим образом:
Описание полей формы:
- Заголовок — название пакета, текстовое поле, заполненное произвольно. Например, "Sabre pack".
- Источник перевозки — реквизиты GDS для поиска авиарейсов
- Принудительно искать только прямые рейсы — если этот чекбокс выбран, в ГДС отправляется запрос только на рейсы без пересадок;
- Реквизиты для бронирования - допустимые реквизиты для проведения бронирования (обычно выбираются те же, что указаны для поиска). Из списка будут выбраны одни по параметру реквизитов авиакомпании для бронирования.
- Реквизиты для выписки — аналогично с "Реквизиты для бронирования", для выписки
- Континенты отправления\прилета — опциональный параметр премаршрутизатора
- Страны отправления\прилета — опциональный параметр премаршрутизатора
- Аэропорты отправления\прилета — опциональный параметр премаршрутизатора
- Допустимый тип поиска по датам — определяет тип поиска (Любой, Только окружные, Только без окружных), при котором будет использоваться данный пакет реквизитов.
- Допустимые направления (через запятую) — задаются направления перелета, при которых будет срабатывать данный пакет реквизитов. Коды направлений необходимо задавать в соответствие с параметрами поиска (одна пара вылет-прилет для OW,RT или несколько пар для CR). Например, для поиска из Домодедово нужно указать код аэропорта DME-XXX, для поиска из MOW указать MOW-XXX. В случае конфликтных настроек, где в качестве континента прилета будет отмечена только Южная Америка, а в качестве направления будет указано направление MOW-LAX (то есть - Северная Америка), поиск по данному пакету реквизитов не будет вестись никогда, поскольку для срабатывания пакета реквизитов требуется, чтобы все параметры поискового запроса удовлетворяли параметрам самого пакета.
Фильтры запросов
Все нежелательные процессы поиска можно запретить фильтрами запросов.
С помощью фильтров ограничивается допустимость процессов поиска в зависимости от условий:
- Фильтр «... + континенты вылета» (можно указать конкретные);
- Фильтр «... + страны вылета» (можно указать конкретные или все кроме конкретных);
- Фильтр «... + аэропорты вылета» (можно указать конкретные или все кроме конкретных);
- Фильтр «... + континенты прилета» (можно указать конкретные);
- Фильтр «... + страны прилета» (можно указать конкретные или все кроме конкретных);
- Фильтр «... + аэропорты прилета» (можно указать конкретные или все кроме конкретных);
- Фильтр «... + тип перелёта» (можно указать конкретный тип перелета или же оставить фильтр выключенным);
- Фильтр «... + дата вылета до» (можно выбрать дату вылета);
- Фильтр «... + дата вылета после» (можно выбрать дату вылета);
- Фильтр «... + дни недели» (можно выбрать дни недели или же оставить фильтр выключенным).
- Фильтр «... + проверять направления (плечи)». Для установленных в данном фильтре направлений (континенты, страны и аэропорты вылета/прилета) можно задать правила их проверки по плечам. Возможные значения настройки:
- Все - значение по умолчанию. При этом будут проверяться правила по всем плечам. Например: установлен фильтр «страны вылета: Все кроме Украина (UA)». Это правило будет проверяться для всех плечей, и в этом случае запрос на маршрут типа IEV-MOW-IEV будет отфильтрован, поскольку на втором плече имеется вылет из Москвы.
- Первое - проверка установленных правил для направлений будет распространяться только на первое плечо. Если рассматривать тот же пример, то, если выбрано данное значение настройки, маршруты IEV-MOW-IEV (RT) или IEV-MOW-PAR (CT) уже будут допущены к поиску.
- Последнее - аналогично, но проверка только последнего плеча.
- Все, кроме первого и последнего - для маршрутов СТ. Проверяться будут направления только для всех промежуточных плечей, независимо от их количества.
Примечание: если в маршруте одно плечо (OW), то оно носит одновременно признак и первого, и последнего плеча.
Процесс поиска, удовлетворяющий заведенным на этой странице правилам, будет прерван, и пользователь получит сообщение "По данному запросу ничего не найдено".
Алгоритм обработки правил следующий:
- Для того чтобы запрос поиска был признан невалидным и прервался - достаточно срабатывания одного любого правила (одной записи). Например «страны прилета: Выбранные Россия (RU) + страны вылета: Все кроме Франция (FR)»
- Чтобы правило было признано сработавшим - необходимо, чтобы сработали все заполненные условия (фильтры) правила. В примере выше «страны прилета: Выбранные Россия (RU)» и «страны вылета: Все кроме Франция (FR)» - это два отдельных условия, данное правило сработает только в том случае, если оба условия истинны
- Условие "Страна вылета" считается сработавшим:
- в режиме "Выбранные" (список): если обнаружено совпадение по одному любому значению из списка (например: Германия)
- в режиме "Все кроме" (список): если ни одно из значений указанных в списке не встретилось в поисковом запросе
Обращаем ваше внимание, что процессы поиска, запрещенные фильтрами, логируются и будут содержать сообщение:
Предупреждение "Search aborted: not allowed by request filters (FILTER_NUMBER)"
где FILTER_NUMBER - идентификатор сработавшего правила фильтров запросов поиска.
Фильтры запросов работают как для маршрута "В одну сторону", так и для поиска с несколькими точками вылета и прилёта.
Пример фильтров запросов
Как настроить фильтры запросов, чтобы поиск запускался только по определенным аэропортам вылета и прилета?
Фильтр запросов поиска в текущем варианте не оставляет интересующие направления, а убирает лишние. Поэтому нужно задавать правила фильтрации запросов до тех пор, пока не будут исключены все лишние направления. Чтобы поиск запускался только по определенным аэропортам вылета и прилета, в рамках имеющихся возможностей фильтров запросов поиска, нужно создать ряд правил.
Первое правило отсекает все лишние аэропорты вылета, оставляя только интересующие.
+ аэропорты вылета: Все кроме (список аэропортов вылета) + проверять направления (плечи): Все
Второе правило отсекает все лишние аэропорты прилета, оставляя только интересующие.
+ аэропорты прилета: Все кроме (список аэропортов прилета) + проверять направления (плечи): Все
Этими двумя правилами, отсекаются все лишние направления, и тогда остаются возможные варианты направлений, по которым будет запускаться поиск. Все возможные комбинации направлений для поиска определяются на основании списков аэропортов вылета и прилета, указанных в этих двух правилах.
Например, вы создали правила фильтрации запросов:
1. + аэропорты вылета: Все кроме (Москва, Санкт-Петербург, Екатеринбург, Тамбов) + проверять направления (плечи): Все 2. + аэропорты прилета: Все кроме (Москва, Санкт-Петербург, Екатеринбург, Тамбов) + проверять направления (плечи): Все
Значит, поиск будет запускаться по всем комбинациям возможных направлений:
Москва | Санкт-Петербург |
Москва | Екатеринбург |
Москва | Тамбов |
Санкт-Петербург | Москва |
Санкт-Петербург | Екатеринбург |
Санкт-Петербург | Тамбов |
Екатеринбург | Москва |
Екатеринбург | Санкт-Петербург |
Екатеринбург | Тамбов |
Тамбов | Москва |
Тамбов | Санкт-Петербург |
Тамбов | Екатеринбург |
Если список возможных направлений для поиска включает также направления, по которым поиск нужно запретить, то определяется дополнительная группа правил фильтрации. Эти правила предназначены, чтобы отсечь запрещенные направления из множества возможных направлений (не затронутых первыми двумя правилами), чтобы сформировать итоговый список допустимых направлений.
Предположим запрещенными для поиска являются направления, подсвеченные красным фоном в таблице.
Москва | Санкт-Петербург | |
Москва | Екатеринбург | |
3. запретить запрос поиска | Москва | Тамбов |
Санкт-Петербург | Москва | |
4. запретить запрос поиска | Санкт-Петербург | Екатеринбург |
4. запретить запрос поиска | Санкт-Петербург | Тамбов |
Екатеринбург | Москва | |
Екатеринбург | Санкт-Петербург | |
Екатеринбург | Тамбов | |
Тамбов | Москва | |
5. запретить запрос поиска | Тамбов | Санкт-Петербург |
5. запретить запрос поиска | Тамбов | Екатеринбург |
Тогда следующие три правила будут запрещать поиск по направлениям, которые мы хотим убрать из допустимых (подсвечено красным фоном):
3. + аэропорты вылета: Выбранные (Москва) + аэропорты прилета: Выбранные (Тамбов) + проверять направления (плечи): Все 4. + аэропорты вылета: Выбранные (Санкт-Петербург) + аэропорты прилета: Выбранные (Екатеринбург, Тамбов) + проверять направления (плечи): Все 5. + аэропорты вылета: Выбранные (Тамбов) + аэропорты прилета: Выбранные (Санкт-Петербург, Екатеринбург) + проверять направления (плечи): Все
В итоге, если необходимо, чтобы запросы поиска выполнялись по конкретным направлениям, например:
Москва | Санкт-Петербург |
Москва | Екатеринбург |
Санкт-Петербург | Москва |
Екатеринбург | Москва |
Екатеринбург | Санкт-Петербург |
Екатеринбург | Тамбов |
Тамбов | Москва |
То для этого потребуются следующие правила:
+ аэропорты вылета: Все кроме (Москва, Санкт-Петербург, Екатеринбург, Тамбов) + проверять направления (плечи): Все + аэропорты прилета: Все кроме (Москва, Санкт-Петербург, Екатеринбург, Тамбов) + проверять направления (плечи): Все + аэропорты вылета: Выбранные (Москва) + аэропорты прилета: Выбранные (Тамбов) + проверять направления (плечи): Все + аэропорты вылета: Выбранные (Санкт-Петербург) + аэропорты прилета: Выбранные (Екатеринбург, Тамбов) + проверять направления (плечи): Все + аэропорты вылета: Выбранные (Тамбов) + аэропорты прилета: Выбранные (Санкт-Петербург, Екатеринбург) + проверять направления (плечи): Все
Чем больше различных аэропортов вам необходимо учесть (разрешить или запретить для поиска), тем больше правил нужно будет создать.
Фильтры результатов
Все нежелательные рейсы из выдачи должны быть удалены фильтрами.
С помощью фильтров редактируется выдача результатов на сайте. При создании фильтра можно указать для каких пакетов реквизитов будет работать данный фильтр. После чего задаются условия:
- «авиакомпания не является контрактной» (если стоит галочка, то отсеются все авиакомпании отсутствующие в списке контрактных);
- «+ перелёт заблокирован» (при включении этого фильтра перелёты, оказавшиеся запрещенными, не попадут в результаты поиска) (Опция доступна только при включенном модуле «Обработка неподтвержденных сегментов»);
- «+ содержит авиакомпании (marketing) в первом сегменте» (можно указать конкретные или все кроме какой-то);
- «+ содержит авиакомпании (marketing) в любом сегменте» (можно указать конкретные или все кроме какой-то);
- «+ содержит выполняющие авиакомпании (operation) в любом сегменте» (можно указать конкретные или все кроме какой-то);
- «+ перелет содержит несколько тарифов» (да, если стоит галочка);
- «+ сегменты перелета разного класса» (да, если стоит галочка);
- «+ перелет без электронного билета» (да, если стоит галочка);
- «+ международный перелет при поиске в пределах одной страны» (да, если стоит галочка);
- «+ тип перевозки» (можно выбрать ВВЛ или МВЛ );
- «+ континенты вылета» можно указать конкретные);
- «+ страны вылета» (можно указать конкретные или все кроме какого-то);
- «+ аэропорты вылета» (можно указать конкретные или все кроме какого-то);
- «+ континенты прилета» (можно указать конкретные );
- «+ страны прилета» (можно указать конкретные или все кроме какого-то);
- «+ аэропорты прилета» (можно указать конкретные или все кроме какого-то).
- «+ содержит тариф(тарифы) или коды классов» (перечислять через запятую)
- «+ содержит номера рейсов» (перечислять через запятую)
- «+ присутствуют сегменты без точного времени вылета»
- «+ до времени вылета осталось менее Х часов» (минимальное количество часов до вылета)
- «+ цена перелета больше» (перелеты, стоимость которых выше указанного значения будут удалены из результатов поиска)
- «+ цена перелета меньше» (перелеты, стоимость которых ниже указанного значения будут удалены из результатов поиска)
- «+ прибыль меньше» (перелеты, прибыль которых ниже указанного значения, удаляются из результатов поиска)
Из результатов поиска будут удалены перелеты, удовлетворяющие заведенным на этой странице правилам. Алгоритм обработки правил следующий:
- Для того чтобы перелет был определен как неподходящий и удален из результатов поиска, достаточно срабатывания одного любого правила (одной записи). Например «содержит авиакомпании (marketing) в первом сегменте: Все кроме SU + содержит выполняющие авиакомпании (operation) в любом сегменте: Все кроме UT».
- Чтобы конкретное правило сработало, необходимо, чтобы были выполнены все заполненные условия (фильтры) правила. В примере выше «содержит авиакомпании (marketing) в первом сегменте: Все кроме SU» и «содержит выполняющие авиакомпании (operation) в любом сегменте: Все кроме UT» - это два отдельных условия, данное правило сработает только в том случае, если оба условия истинны.
Обращаем ваше внимание, что удаление происходит в процессе поиска и измененные настройки не влияют на уже сохраненные результаты на странице выбора рейсов.
Предупреждение: Логирование фильтрации перелетов происходит только при: # включенном режиме отладки Поиска 2.0 (режим "Тонкая настройка" в настройках Поиска 2.0) # включенном режиме записи всех ответов поиска (включается на просмотре логов)
Микшер результатов
! Микшер работает с результатами оставшимися после фильтрации. Включить или выключить его можно в подразделе «Тонкая настройка».
При создании микшера можно указать авиакомпании для которых будут применяться данные правила. Если авиакомпания не указана, правило применяется для всех компаний.
Дальнейшее микширование проходит два этапа:
1. Ценовой, выбираем перелет по условию (можно выбрать один из вариантов):
- Цена от GDS (нетто) минимальная
- Цена (брутто) минимальная
- Цена (брутто) максимальная
- Сбор максимальный
- Максимальная комиссия от перевозчика (сработает только при условии активированного расчета комиссий 2.0)
- Максимальная прибыль (сбор + комиссия) (сработает только при условии активированного расчета комиссий 2.0)
- Игнорировать этап 1.
2. Поставщики, если не сработал этап 1(или выбран последний пункт), выбираем по приоритету поставщика или конкретного пакета реквизитов. Если выбран поставщик и для него есть несколько пакетов реквизитов, то выберется перелет из первого пакета.
Микшер по умолчанию
! В случае, если микшер включен, но для определенной авиакомпании не задано правило, срабатывает правило по умолчанию (Ценовой этап, Цена (брутто) максимальная).
Если Вы не хотите, чтобы правило по умолчанию применялось, необходимо задать общее правило для всех авиакомпаний.
Отладка микшера
Работа микшера по каждому поисковому запросу последовательно логируется и может быть проанализирована в подробной таблице отладки:
Описание полей таблицы:
- Операция — каждой операции микшера присваивается ID.
Один ID присвоен для всех строк в таблице, описывающих один и тот же вариант из разных источников (пакетов реквизитов для поиска).
- Выбранный микшер — ID сработавшего правила микширования.
- Уровень 1 — выбранная логика микширования на Этапе 1.
- Уровень 2 — выбранный GDS или пакет реквизитов на Этапе 2.
- Авиакомпания — первый маркетинговый перевозчик или валидирующий перевозчик, если активирован расчет комиссий 2.0.
- Код микширования — данные варианта, для которого проведено микширование.
- Мин. цена ГДС — цена нетто в результатах источника, указанного в данной строке.
- Мин. цена — минимальная цена брутто в результатах источника.
- Макс. цена — максимальная цена брутто в результатах источника.
- Макс. сбор — размер сбора для цены в результатах источника.
- Макс. комиссия— размер комиссии авиакомпании для цены в результатах источника.
- Макс. прибыль — сумма прибыли для цены в результатах источника.
- GDS — GDS источника, в котором найден вариант.
- Пакет— источник, в котором найден вариант.
Отображение таблицы отладки включается в разделе «Тонкая настройка» — «Режим отладки включен».
После завершения каждого поиска Вы будете перенаправлены на страницу логов этого поиска. В записи с сообщением flights_search_process/search размещается ссылка на таблицу отладки микшера.
Тонкая настройка
Процесс поиска имеет ряд дополнительных настроек:
- Поиск 2.0 включен — опция активирует работу модуля «Поиск 2.0»;
- Выбор пакетных реквизитов для поиска — позволяет выбрать пакеты реквизитов для поиска;
- Применять географические ограничения для выбора пакетов
- Фильтры запросов включены
- Фильтры результатов включены
- Время первой блокировки перелёта (часов) — время, в течение которого перелет, недоступный для бронирования, будет находится в списке запрещенных перелетов в первый раз. По умолчанию равно 1 часу. Опция доступна только при включенном модуле «Обработка неподтвержденных сегментов».
- Время повторной блокировки перелёта (часов) — время, в течение которого перелет, недоступный для бронирования, будет повторно находится в списке запрещенных перелетов. По умолчанию равно 1 часу. Опция доступна только при включенном модуле «Обработка неподтвержденных сегментов».
Если в течении суток после окончания первой блокировки проблема повторилась, то перелёт запрещается по периоду повторной блокировки. Если в течении суток после окончания повторной блокировки проблема повторилась, то перелёт запрещается также по периоду повторной блокировки. Если через сутки после окончания первой/повторной блокировки проблемы по аналогичному перелёту не возникало, то он будет удалён из списка запрещенных перелетов, а следующий запрет такого перелёта будет по периоду первой блокировки.
- Микшер результатов включен
- Режим отладки включен
Тестирование/отладка
На странице «Тонкая настройка» можно настроить Пакеты реквизитов для поиска, выбрав необходимые. Так же возможно включить: Географическое ограничение для выбора пакетов, фильтры и микшер результатов.
При применении этого модуля ценовые правила, комиссии авиакомпаний, комиссии субагента и контрактные авиакомпании будут работать для выбранных GDS при создании.