Яndex.Server 3.1 ДОКУМЕНТАЦИЯ

       

Конфигурирование шаблона документа


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

UrlQuery

SQL-запрос, при помощи которого можно получить список всех записей базы данных, подлежащих индексированию. Обычно это оператор SELECT по полю или нескольким полям с неповторяющимися значениями (по первичному ключу, если пользоваться терминологией баз данных).

Пример. UrlQuery: SELECT id FROM mydata Так как результатом этого запроса является совокупность всех записей таблицы по полю id, будут проиндексированы все данные, содержащиеся в mydata. При этом важно, чтобы содержимое поля id было уникально. UrlQuery : SELECT id FROM mydata WHERE id Будет проиндексирована лишь та часть таблицы, поле id которой меньше 1000.

KeyFields

Список имен полей, формирующих первичный ключ в наборе записей, полученном с помощью UrlQuery. Каждому документу, соответствующему одной записи, в индексе будет сопоставлен URL, компонетами которого являются значение директивы Name секции DataSource конфигурационного файла индексатора, имя секции конфигурационного файла источника данных, в которой описывается данный шаблон документа, значения полей, указанных в директиве KeyFields.

Пример: KeyFields: id

DocQuery

SQL-запрос для получения конкретной записи базы. Запрос должен быть оформлен таким образом, чтобы в качестве результата запроса возвращалась ровно одна запись, содержащая данные для формирования документа. В запросе следует употребить параметры с именами $1-$N, где $k - порядковый номер поля в директиве KeyFields

Пример: DocQuery: SELECT id, m_time, title, content FROM mydata WHERE id=$1 Здесь m_time, title, content - имена полей таблицы mydata.

IndexFields

Список имен полей в наборе записей, полученном с помощью DocQuery, которые содержат данные документа. Значения этих полей будут подставлены в шаблон документа.


Пример: IndexFields: id, title, content

TimeStamp Необязательная директива. Имя поля из набора записей, полученного с помощью DocQuery, в котором содержатся данные, имеющие смысл времени последнего обновления записи. Если задано, будет возможна ускоренная переиндексация.

Пример: TimeStamp: m_time

Template Указывает путь к файлу с шаблоном документа. В шаблоне следует употребить параметры с именами $1-$N, где $k - порядковый номер поля в директиве IndexFields. В процессе индексирования будут подставлены значения для текущей записи.

Пример: Template: c:\mydoc.htm Файл c:\mydoc.htm имеет следующий вид: <HTML> <HEAD> <META NAME="docid" CONTENT="$1"> <TITLE>$2</TITLE> </HEAD> <BODY>$3</BODY> </HTML>

MimeType Необязательная директива. Указывает формат документа, генерируемого с помощью шаблона Template. Формат документа должен совпадать с одним из форматов, определенных в секциях DocFormat

Значение по умолчанию: text/html

Redirect Необязательная директива, используется при поиске для вывода ссылки на найденный документ. Если отсутствует, будет показана ссылка на внутренний скрипт, выводящий документ по шаблону, указанному в Template. Значение директивы представляет собой адрес серверного скрипта с CGI-параметрами, вместо значений которых указаны параметры с именами $1-$N, где $k - порядковый номер поля в директиве KeyFields. При отображении ссылки на веб-странице будут подставлены нужные значения полей.

Пример: Redirect: http://myserver.ru/script.asp?id=$1


Содержание раздела