Поисковые зоны и атрибуты
Документ размечается на зоны во время индексирования, в соответствии с метками, возвращаемыми парсером. Каждая зона получает уникальное имя (текстовую строку), используемое в языке запросов, и может быть предметом поиска независимо от других зон. Мы будем называть эти размеченные области документа поисковыми зонами. Каждая поисковая зона имеет точки начала и конца в теле документа. Начало и конец зон всегда приходятся на границы слов. Разные зоны могут быть вложены друг в друга.
Свойства (атрибуты) зон также могут быть помечены в качестве независимых объектов поиска. Такие свойства зон будем называть поисковыми атрибутами, или просто атрибутами. Каждый атрибут имеет уникальное имя (текстовую строку), и значение, которое может быть различного типа, в зависимости от способа его обработки при индексировании. Зона, в общем случае, может иметь произвольное число атрибутов. Каждый атрибут может иметь несколько различных значений. Разумеется, не все атрибуты, определенные в данном массиве документов, должны быть определены для данной зоны. Язык запросов Яндекса позволяет искать в нужной зоне с нужным значением атрибута. Значения атрибутов назначаются зонам во время индексирования, в соответствии с метками, возвращаемыми парсером, и хранятся в том же индексном файле, что и слова, встречающиеся в документе.
Существуют два важных частных случая зон - документ как целое и зона нулевой длины. Атрибуты документа как целого называются документными атрибутами. Примерами документных атрибутов являются размер документа, его автор, дата создания или принадлежность к определенному разделу сайта. Поиск по таким атрибутам является важным частным случаем зонно-атрибутивного поиска. Назначение документных атрибутов возможно не только во время индексирования, как для других зон, но и дополнительно, в конфигурационном файле индексатора (см. подраздел Набор атрибутов документа раздела Директива Options главы Ключи конфигурационного файла индексатора).
Зона нулевой длины введена для того, чтобы иметь возможность назначить атрибуты определенной точке внутри документа. Это может быть полезным в случае, когда документ имеет "вложенные потоки", отличающиеся форматом или медиа-типом и не индексируемые с помощью основного парсера. Например, у картинок в HTML-документе может быть всплывающий сверху текст - параметр alt тега <img>. Этот текст - свойство (атрибут) точки документа, в которой расположена картинка.
Пример 5-4. Документные атрибуты
Рассмотрим массив из двух документов, включающих литературные произведения. Каждый из них имеет документный атрибут datecreated, имеющий значение даты написания произведения его автором. Первый документ имеет атрибут author со значением Pushkin, а у второго документа этот атрибут имеет два значения - Shecly и Zelazny, так как произведение написано в соавторстве. Наконец, у первого документа имеется атрибут in_meter со значением iambus, а у второго документа этот атрибут отсутствует.