Формальные правила описания поисковых атрибутов можно представить следующим набором выражений: <Attributes> yxattr = TYPE/htelem.htattr(,htelem.htattr)* yxattr = TYPE,yxzone/htelem.htattr(,htelem.htattr)* yxattr = TYPE,yxzone,function/htelem.htattr(,htelem.htattr)* yxattr = TYPE,yxzone,function,ignore/htelem.htattr(,htelem.htattr)* ;только для атрибутов типа URL yxattr = TYPE,yxzone,function,ignore,ext( ext)*/htelem.htattr(,htelem.htattr)* yxattr = TYPE,yxzone,function,ignore,ext( ext)*,local/htelem.htattr(,htelem.htattr)* </Attributes> Где
| yxzone - имя поисковой зоны |
| yxattr - имя поискового атрибута |
| htelem - имя HTML-тега |
| htattr - имя HTML-атрибута |
| (...)* - ноль, один или несколько элементов |
| TYPE - тип поискового атрибута, как описано в разделе Типы атрибутов |
| function - одно из строковых значений, указанных ниже, определяющих правила распознавания текста атрибута |
| ignore - флажок, указывающий, что документный атрибут надо распознавать, но не надо запоминать его в индексных файлах. Используется для создания группировочных атрибутов. |
| ext - список расширений имен файлов разделенных пробелами |
| local - флажок для пометки только локальных (внтурисайтовых) ссылок |
Символ _ (подчеркивание) вместо имени HTML-тега или HTML-атрибута обозначает любой элемент или атрибут. Если символ _ задан вместо имени поискового атрибута, имя поискового атрибута будет совпадать с именем HTML-атрибута.
Пример: Многие HTML-теги могут иметь всплывающую подсказку, заданную через HTML-атрибут title. Чтобы проиндексировать все эти атрибуты, можно определить поисковый атрибут tooltip следующим образом: tooltip = TEXT/_.title Каждое из слов текста атрибута title любого HTML-тега войдет в индекс с учетом морфологии.
Особый случай представляют собой теги <META> и <LINK>. Для удобства их использования принято, что именем атрибута тега <META> является значение атрибутов NAME или HTTP-EQUIV, а значением - содержимое атрибута CONTENT. Для тега <LINK> именем атрибута считается значение атрибутов REL/REV, а значением - содержимое атрибута HREF.
Пример: Каждый документ в электронной библиотеке содержит meta-тег следующего вида: <meta name="author" content="_имя_автора_">
Чтобы обеспечить поиск документов, принадлежащих конкретному автору, определим поисковый атрибут author: author = TEXT/meta.author
Пример: email = URL/link.made _ = TEXT/meta._ _ = URL/link._
Это означает, что будут проиндексированы все встретившиеся в документах META и LINK теги. Причем, если в LINK значение одного из его атрибутов окажется равно made, то поисковый атрибут будет иметь имя email. Во всех остальных случаях (это касается и META) будут образовываться поисковые атрибуты с именами, равными соответствующим значениям атрибутов данных тегов. Это позволяет решить проблему постоянного добавления в конфигурацию записей при каждом появлении нового, еще не описанного META или LINK тега. В настройках подобного вида приоритет имеют явно заданные имена атрибутов.
Если название поисковой зоны после типа атрибута опущено, поисковый атрибут будет документным атрибутом. Если имя поисковой зоны указано, возможны следующие случаи.
| doc | это документный атрибут, тот же самый результат получается, если имя зоны не указывать |
| empty | это атрибут данной точки документа, то есть атрибут специальной зоны нулевой длины, как обсуждалось в Поисковые зоны и атрибуты |
| any | если для содержимого данного HTML-элемента сформирована поисковая зона, поисковый атрибут является атрибутом этой зоны. В противном случае это атрибут данной точки документа. |
| другое имя | если из содержимого HTML-элемента не сформирована поисковая зона с данным именем, поисковый атрибут не создается |
| parse_http_expires | распознавать текст атрибута по правилам, применяемым для meta.expires |
| parse_http_refresh | распознавать текст атрибута по правилам, применяемым для meta.refresh |
| parse_http_charset | распознавать текст атрибута по правилам, применяемым для meta.content-type |
| parse_meta_robots | распознавать текст атрибута по правилам, применяемым для meta.robots |
| parse_data_integer | распознавать текст атрибута как дату и время и преобразовывать результат в целое число |