М. Абрамзон - Яндекс для всех
Директива Extensions задает расширения файлов данного формата. Если для получения содержимого документа используется файловая система, документы в файлах с заданными расширениями будут считаться имеющими медиатип, указанный в директиве MimeType. Тем не менее если для получения содержимого документа используется веб-сервер, возвращающий заголовок Content-type, в качестве медиа-типа используется значение этого заголовка. Пример секции DocFormat приведен в листинге 10.4.
Листинг 10.4. Пример секции DocFormat
<DocFormat>
MimeType text/html
Extensions.htm, html, asp
Config attr.cfg
</DocFormat>
ПарсерыОдно РёР· важнейших свойств РїРѕРёСЃРєРѕРІРѕР№ системы — возможность индексирования файлов произвольного формата. Рто обеспечивается СЃ помощью отдельных модулей — парсеров (еще РёС… называют интерпретаторами форматов документов). Для каждого типа файлов применяется СЃРІРѕР№ модуль. Р’ платную версию РїРѕРёСЃРєРѕРІРёРєР° включены парсеры для документов РІ форматах XML, RTF, PDF, MP3, FLASH, MS Word, MS Excel, MS PowerPoint, РїРѕРјРёРјРѕ входящих РІ стандартную поставку парсеров для форматов text/html Рё text/plain. Рспользуя спецификацию, независимые разработчики РјРѕРіСѓС‚ разработать Рё иные парсеры, необходимые для используемых РёРјРё форматов данных, однако подключить РёС… можно только Рє платной версии.
РР· всех парсеров, поставляемых СЃ программой, РґРІР° являются конфигурируемыми. Рто парсеры HTML Рё XML-документов. Остальные используются "как есть". Р’ документации, входящей РІ комплект поставки, есть разделы, посвященные вопросам настройки парсеров РїРѕРґ решение конкретных задач.
ВниманиеНа сайте Яндекса представлена программа mystem (http://company.yandex.ru/
technology/products/mystem/mystem.xml). Рто — парсер, осуществляющий морфологический анализ текста РЅР° СЂСѓСЃСЃРєРѕРј языке. Программа предназначена для некоммерческого использования.
У большинства типов документов есть своя внутренняя структура, определенные элементы которой несут свойственную лишь им смысловую нагрузку. В почтовых письмах это могут быть поля from, to, Subj, в вебдокументах — это заголовок, тело документа, ключевые слова. В теле могут присутствовать заголовки различных уровней, ссылки, картинки и т. д. Различные части структурированных таким образом документов в Яндексе называются зонами.
Основная задача парсера — выделить из документа нужный для индексирования текст. Текст, выделяемый парсером, может быть помечен как принадлежащий определенной зоне документа или как имеющий определенные свойства (атрибуты). На основании элементов форматирования документа парсер может указать границы предложений и абзацев, а также вес данного отрывка текста.
Разбиение документа на зоны происходит во время индексирования на основании меток, возвращаемых парсером. Впоследствии каждая зона может стать объектом независимого поиска (вспомните то, что мы уже говорили про поиск — поиск по заголовкам документов, заголовкам писем, адресатам, тегам и т. д.). Каждая поисковая зона имеет точки начала и конца в теле документа. Начало и конец зон всегда приходятся на границы слов.
Рндексирование СЃ учетом Р·РѕРЅ Рё РёС… характеристик обеспечивает РІ дальнейшем возможность РїРѕРёСЃРєР° СЃ учетом нахождения требуемых сведений РІ определенных зонах. Рто очень хорошо заметно РЅР° примере языка запросов, Рѕ котором РјС‹ РїРѕРіРѕРІРѕСЂРёРј, применительно Рє РЇndex.Server, чуть позже.
10.1.2. Как группируются результаты
РЈ документа, РїРѕРјРёРјРѕ данных, используемых для организации РїРѕРёСЃРєР°, существуют дополнительные атрибуты. Рљ РЅРёРј можно отнести размер документа Рё время его создания, тип документа Рё принадлежность Рє определенному разделу сайта. Рти характеристики используются для сортировки Рё РіСЂСѓРїРїРёСЂРѕРІРєРё результатов РїРѕРёСЃРєР°. Значения этих атрибутов хранятся РІ специальном дополнительном файле Рё РјРѕРіСѓС‚ быть изменены без переиндексирования, РЅРѕ обязательно РґРѕ начала выполнения РїРѕРёСЃРєР°.
При формировании ответа на запрос всегда происходит выстраивание списка найденных документов. По умолчанию ранжирование выполняется по значению релевантности запросу. Однако бывает необходимо выполнить сортировку по дополнительным признакам, например, по типам документов или по датам. В этом случае сортировка будет выполняться по группировочным атрибутам. Например, новости можно сгруппировать по изданиям, опубликовавшим их, а документы — по разделу сайта, где они размещаются. Ограничение, накладываемое на группирование результатов, заключается в том, что группирование не может быть вложенным (т. е. нельзя сгруппировать уже сгруппированный список).
Однако для одного поискового запроса можно задать сразу несколько группировок, или вариантов структурирования результата. То есть можно получить не один "список найденного", а несколько, и каждый список будет соответствовать одной группировке. При этом способ сортировки результата поиска для всех вариантов может быть только один.