Обобщим все вышесказанное и кратко опишем ключевые моменты механизма взаимодействия Яndex.Server 3.1 с SQL-сервером:
индексация информации из базы данных организуется при помощи двух SQL-запросов, определенных в ключах UrlQuery и DocQuery. Используя ключ UrlQuery, индексатор имеет возможность получить список всех записей, подлежащих индексации, а используя DocQuery - конкретную запись из этого списка.
Ключ DocQuery оформляется таким образом, чтобы возвращать данные в одном из стандартных форматов. Это необязательно должен быть HTML-документ, как в рассмотренных ранее примерах. Данные допустимо оформить в виде text/plain или можно использовать любой другой формат, известный индексатору (подробнее см. ниже).
Индексатор получает информацию и обрабатывает ее обычным образом. В качестве ссылки на исходный документ в индексный файл записывается искусственный URL.
Поисковый сервер производит стандартный поиск по ключевому слову и подготавливает обычную страницу результатов. Она в качестве ссылок на найденные документы содержит URL'ы, сформированные по определенным правилам, которые должны уметь правильно интерпретировать процедуры, отвечающие за извлечение данных из SQL-базы.
В качестве средств для доступа к SQL-серверу и выдачи найденного документа могут быть использованы как скрипты, написанные администратором Яndex.Server 3.1, так и сам поисковый сервер, настроенный соответствующим образом:
если для извлечения из базы данных информации и формирования на ее основе исходного документа вы используете свой CGI-скрипт, то в конфигурационном файле поискового сервера необходимо правильно оформить ключ Redirect.
Пример.
Для выдачи найденного документа используется CGI-скрипт message. Допустим, ключи HostName и UrlQuery для вашей базы выглядят следующим образом: HostName localhost UrlQuery SELECT id,name FROM programs тогда в настройках поискового сервера должна быть следующая запись: Redirect http://www.myhost.ru/cgi-bin/message?
В этом случае URL для записи с id=1 и name=user1 на странице результатов поиска будет выглядеть следующим образом: http://www.myhost.ru/cgi-bin/message?/0001/user1