Глава 6. Подсекции

Содержание
6.1. Тэги
6.2. Категории

6.1. Тэги

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

Для присвоения тэга серверу, или части сервера, вы должны использовать команду Tag в indexer.conf, указав её перед соответсвующей командой Server/Realm/Subnet. При поиске, вы можете указать тэг задав CGI-параметр t=xxx, в HTML форме. Смотрите indexer.conf-dist и search.htm-dist в качестве примера.

6.1.1. Команда Tag

Tag <string>

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

6.1.2. Команда TagIf

TagIf <tag> [Match|NoMatch] [NoCase|Case] [String|Regex] [loose] <section> <arg> [<arg> ... ]

Присвоить документу тэг <tag>, если значении секции section подпадает под указаный шаблон arg. Значение первых трёх необязательных параметров такое же как для команды Allow (см. Разд. 3.10.14>). Необязательный параметр loose используется для задания более низкого приоритета такому присвоению тэга, т.е. если тэг уже был присвоен на основании параметров сервера, новое значение тэгу присвоено не будет.

Пример

TagIf Docs regex Title Manual

В тэге <tag> можно использовать мета-переменные шаблона страницы выдачи (например, $(title), $(Last-Modified)). В примере ниже для каждого документа в качестве тэга выставляется доменное имя из его URL:

TagIf $(url.host) match url.host *

6.1.3. Тэги в SQL версии

Начиная с версии 3.1.x. тип тэгов изменён с INT на CHAR. Тип CHAR даёт несколько полезных возможностей. Вы може использовать SQL-шаблоны '_' and '%' при указании параметра тэга для поиска. Это позволяет тэгам, наравне с категориями, поддерживать возможность вложенности. Например, документы со значением тэга "AB" могут быть найдены, если при поиске указаны параметры тэга "A%" или "AB".

Тэги также дают возможность URL быть членом нескольких групп. Задавая SQL-шаблоны, вы можете легко создать две и более групп.

Например, тэг "ABCDE" - подпадает под выборку с такими тэгами в качестве параметра:

_BCDE
A_CDE
AB_DE
ABC_E
ABCD_

Замечание: Если у вас достаточно большая база, и ограничения по тэгу используются часто, весьма полезно создать для таблицы "server" индекс по полю "tag". Этот индекс не создаётся по умолчанию.

CREATE INDEX srv_tag ON "server" ("tag");

По умолчанию, длина поля "tag" в таблице "server" ограничена 16 символами. Если вам необходимы более длинные тэги, увеличьте это значение перед созданием базы.

Замечание: Для способа хранения cache вам нужно указать секцию tag в вашем файле sections.conf с ненулевой максимальной длиной:

Section tag 0 64