Книга: Яндекс для всех

10.1.2. Как группируются результаты

10.1.2. Как группируются результаты

У документа, помимо данных, используемых для организации поиска, существуют дополнительные атрибуты. К ним можно отнести размер документа и время его создания, тип документа и принадлежность к определенному разделу сайта. Эти характеристики используются для сортировки и группировки результатов поиска. Значения этих атрибутов хранятся в специальном дополнительном файле и могут быть изменены без переиндексирования, но обязательно до начала выполнения поиска.

При формировании ответа на запрос всегда происходит выстраивание списка найденных документов. По умолчанию ранжирование выполняется по значению релевантности запросу. Однако бывает необходимо выполнить сортировку по дополнительным признакам, например, по типам документов или по датам. В этом случае сортировка будет выполняться по группировочным атрибутам. Например, новости можно сгруппировать по изданиям, опубликовавшим их, а документы — по разделу сайта, где они размещаются. Ограничение, накладываемое на группирование результатов, заключается в том, что группирование не может быть вложенным (т. е. нельзя сгруппировать уже сгруппированный список).

Однако для одного поискового запроса можно задать сразу несколько группировок, или вариантов структурирования результата. То есть можно получить не один "список найденного", а несколько, и каждый список будет соответствовать одной группировке. При этом способ сортировки результата поиска для всех вариантов может быть только один.

Параметры группировки

Для выполнения группировки или сортировки результатов в поле запроса требуется добавить определенные параметры, описанные в табл. 10.1.


Полей g может быть несколько — по числу необходимых группировок. Поле g имеет структуру mode.attr.ngrp.ndoc.cur, описанную в табл. 10.2. Необходимо помнить, что по умолчанию при выполнении запроса не делается никаких группировок. Для того чтобы получить ту или иную группировку, необходимо задать поле g. Группировка и сортировка происходят на этапе выполнения запроса, поэтому нельзя использовать функции работы с группами при построении выдачи, если до выполнения поиска не были заданы соответствующие поля.


Поле fa служит для фильтрации найденных документов по значениям указанных группировочных атрибутов. Такая фильтрация выполняется после выполнения поискового запроса, но до начала выполнения группировок. Использование поля fa для фильтрации результатов поиска по группировочным атрибутам предпочтительнее, чем использование поисковых атрибутов в поисковом запросе (если в индексе есть поисковые атрибуты с теми же названиями и числовыми значениями), так как работает быстрее. Поле fa может содержать несколько подвыражений, разделенных точкой с запятой. Каждое подвыражение состоит из названия атрибута, двоеточия и диапазона, в котором должен находиться указанный атрибут у прошедших фильтр документов. Диапазон указывается в виде двух чисел, разделенных дефисом. Если одно из задающих диапазон значений отсутствует, фильтр пройдут документы со значением атрибута, большим или меньшим указанного. Примеры поля fa:

fa=price:40–50

fa=f:1-20;d:-30;t:40-

Все описанные здесь параметры могут быть использованы при разработке собственной страницы задания условий расширенного поиска. Но эта возможность доступна только в платной версии.

Оглавление книги


Генерация: 1.599. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз