Открыть главное меню

Изменения

Поиск 2.0

15 510 байт убрано, 12:36, 20 апреля 2016
Фильтры запросов
=== [[Фильтры поисковых запросов === Все нежелательные процессы поиска можно запретить фильтрами запросов. С помощью фильтров ограничивается допустимость процессов поиска в зависимости от условий:* '''Фильтр «... + континенты вылета»''' — можно указать конкретные.* '''Фильтр «... + страны вылета»''' — можно указать конкретные или все кроме конкретных.* '''Фильтр «... + аэропорты вылета»''' — можно указать конкретные или все кроме конкретных.* '''Фильтр «... + континенты прилета»''' — можно указать конкретные.* '''Фильтр «... + страны прилета»''' — можно указать конкретные или все кроме конкретных.* '''Фильтр «... + аэропорты прилета»''' — можно указать конкретные или все кроме конкретных.* '''Фильтр «... + тип перелёта»''' — можно указать конкретный тип перелета или же оставить фильтр выключенным.* '''Фильтр «... + дата вылета до»''' — можно выбрать дату вылета.* '''Фильтр «... + дата вылета после»''' — можно выбрать дату вылета.* '''Фильтр «... + дни недели»''' — можно выбрать дни недели или же оставить фильтр выключенным.* '''Фильтр «... + проверять направления (плечи)»''' — для установленных в данном фильтре направлений (континенты, страны и аэропорты вылета/прилета) можно задать правила их проверки по плечам. Возможные значения настройки:** '''Все''' — значение по умолчанию. При этом будут проверяться правила по всем плечам. Например: установлен фильтр '''''«страны вылета: Все кроме Украина (UA)»'''''. Это правило будет проверяться для всех плечей, и в этом случае запрос на маршрут типа IEV-MOW-IEV будет отфильтрован, поскольку на втором плече имеется вылет из Москвы.** '''Первое''' — проверка установленных правил для направлений будет распространяться только на первое плечо. Если рассматривать тот же пример, то, если выбрано данное значение настройки, маршруты IEV-MOW-IEV (RT) или IEV-MOW-PAR (CT) уже будут допущены к поиску. ** '''Последнее''' — аналогично, но проверка только последнего плеча.** '''Все, кроме первого и последнего''' — для маршрутов СТ. Проверяться будут направления только для всех промежуточных плечей, независимо от их количества.'''Примечание''': если в маршруте одно плечо (OW), то оно носит одновременно признак и первого, и последнего плеча. Процесс поиска, удовлетворяющий заведенным на этой странице правилам, будет прерван, и пользователь получит сообщение '''«По данному запросу ничего не найдено»'''. Алгоритм обработки правил следующий:* Для того чтобы запрос поиска был признан невалидным и прервался — достаточно срабатывания одного любого правила (одной записи). Например '''''«страны прилета: Выбранные Россия (RU) + страны вылета: Все кроме Франция (FR)»'''''* Чтобы правило было признано сработавшим, необходимо, чтобы сработали все заполненные условия (фильтры) правила. В примере выше '''''«страны прилета: Выбранные Россия (RU)»''''' и '''''«страны вылета: Все кроме Франция (FR)»''''' — это два отдельных условия, данное правило сработает только в том случае, если оба условия истинны * Условие «Страна вылета» считается сработавшим:** в режиме «Выбранные» (список): если обнаружено совпадение по одному любому значению из списка (например: Германия)** в режиме «Все кроме» (список): если ни одно из значений указанных в списке не встретилось в поисковом запросе Обращаем ваше внимание, что процессы поиска, запрещенные фильтрами, логируются и будут содержать сообщение:<pre>Предупреждение «Search aborted: not allowed by request filters (FILTER_NUMBER)»</pre>где FILTER_NUMBER — идентификатор сработавшего правила фильтров запросов поиска. Фильтры запросов работают как для маршрута «В одну сторону», так и для поиска с несколькими точками вылета и прилёта. ==== Пример фильтров запросов ===='''Как настроить фильтры запросов, чтобы поиск запускался только по определенным аэропортам вылета и прилета?''' Фильтр запросов поиска в текущем варианте не оставляет интересующие направления, а убирает лишние. Поэтому нужно задавать правила фильтрации запросов до тех пор, пока не будут исключены все лишние направления.Чтобы поиск запускался только по определенным аэропортам вылета и прилета, в рамках имеющихся возможностей фильтров запросов поиска, нужно создать ряд правил. '''Первое правило''' отсекает все лишние аэропорты вылета, оставляя только интересующие. '''+ аэропорты вылета''': '''''Все кроме''''' (список аэропортов вылета) + '''проверять направления (плечи)''': '''''Все''''' '''Второе правило''' отсекает все лишние аэропорты прилета, оставляя только интересующие. '''+ аэропорты прилета''': '''''Все кроме''''' (список аэропортов прилета) + '''проверять направления (плечи)''': '''''Все''''' Этими двумя правилами, отсекаются все лишние направления, и тогда остаются возможные варианты направлений, по которым будет запускаться поиск. Все возможные комбинации направлений для поиска определяются на основании списков аэропортов вылета и прилета, указанных в этих двух правилах. Например, вы создали правила фильтрации запросов: '''1.''' '''+ аэропорты вылета''': '''''Все кроме''''' (Москва, Санкт-Петербург, Екатеринбург, Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''2.''' '''+ аэропорты прилета''': '''''Все кроме''''' (Москва, Санкт-Петербург, Екатеринбург, Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' Значит, поиск будет запускаться по всем комбинациям возможных направлений: {| style="width: 300px" class="wikitable"|-| Москва | Санкт-Петербург|-| Москва | Екатеринбург|-| Москва | Тамбов|-| Санкт-Петербург | Москва|-| Санкт-Петербург | Екатеринбург|-| Санкт-Петербург | Тамбов|-| Екатеринбург | Москва|-| Екатеринбург | Санкт-Петербург|-| Екатеринбург | Тамбов|-| Тамбов | Москва|-| Тамбов | Санкт-Петербург|-| Тамбов | Екатеринбург|} Если список возможных направлений для поиска включает также направления, по которым поиск нужно запретить, то определяется '''дополнительная группа правил фильтрации'''. Эти правила предназначены, чтобы отсечь запрещенные направления из множества возможных направлений (не затронутых первыми двумя правилами), чтобы сформировать итоговый список допустимых направлений.  Предположим запрещенными для поиска являются направления, подсвеченные красным фоном в таблице. {| style="width: 450px" class="wikitable"|- style="background: PaleGreen;"|| Москва | Санкт-Петербург|- style="background: PaleGreen;"|| Москва | Екатеринбург|- style="background: Salmon;"| 3. запретить запрос поиска| Москва | Тамбов|- style="background: PaleGreen;"|| Санкт-Петербург | Москва|- style="background: Salmon;"| 4. запретить запрос поиска| Санкт-Петербург | Екатеринбург|- style="background: Salmon;"| 4. запретить запрос поиска| Санкт-Петербург | Тамбов|- style="background: PaleGreen;"|| Екатеринбург | Москва|- style="background: PaleGreen;"|| Екатеринбург | Санкт-Петербург|- style="background: PaleGreen;"|| Екатеринбург | Тамбов|- style="background: PaleGreen;"|| Тамбов | Москва|- style="background: Salmon;"| 5. запретить запрос поиска| Тамбов | Санкт-Петербург|- style="background: Salmon;"| 5. запретить запрос поиска| Тамбов | Екатеринбург|} Тогда следующие три правила будут запрещать поиск по направлениям, которые мы хотим убрать из допустимых (подсвечено красным фоном): '''3.''' '''+ аэропорты вылета''': '''''Выбранные''''' (Москва) '''+ аэропорты прилета''': '''''Выбранные''''' (Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''4.''' '''+ аэропорты вылета''': '''''Выбранные''''' (Санкт-Петербург) '''+ аэропорты прилета''': '''''Выбранные''''' (Екатеринбург, Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''5.''' '''+ аэропорты вылета''': '''''Выбранные''''' (Тамбов) '''+ аэропорты прилета''': '''''Выбранные''''' (Санкт-Петербург, Екатеринбург) '''+ проверять направления (плечи)''': '''''Все''''' В итоге, если необходимо, чтобы запросы поиска выполнялись по конкретным направлениям, например: {| style="width: 450px" class="wikitable"|- style="background: PaleGreen;"| Москва | Санкт-Петербург|- style="background: PaleGreen;"| Москва | Екатеринбург|- style="background: PaleGreen;"| Санкт-Петербург | Москва|- style="background: PaleGreen;"| Екатеринбург | Москва|- style="background: PaleGreen;"| Екатеринбург | Санкт-Петербург|- style="background: PaleGreen;"| Екатеринбург | Тамбов|- style="background: PaleGreen;"| Тамбов | Москва|} То для этого потребуются следующие правила: '''+ аэропорты вылета''': '''''Все кроме''''' (Москва, Санкт-Петербург, Екатеринбург, Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''+ аэропорты прилета''': '''''Все кроме''''' (Москва, Санкт-Петербург, Екатеринбург, Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''+ аэропорты вылета''': '''''Выбранные''''' (Москва) '''+ аэропорты прилета''': '''''Выбранные''''' (Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''+ аэропорты вылета''': '''''Выбранные''''' (Санкт-Петербург) '''+ аэропорты прилета''': '''''Выбранные''''' (Екатеринбург, Тамбов) '''+ проверять направления (плечи)''': '''''Все''''' '''+ аэропорты вылета''': '''''Выбранные''''' (Тамбов) '''+ аэропорты прилета''': '''''Выбранные''''' (Санкт-Петербург, Екатеринбург) '''+ проверять направления (плечи)''': '''''Все''''' Чем больше различных аэропортов вам необходимо учесть (разрешить или запретить для поискаАвиабилеты), тем больше правил нужно будет создать.]]
=== Фильтры результатов ===
'