Имеется два варианта поставки этого продукта: бесплатная версия и платная версия Enterprise, различающиеся своими возможностями. Отличия версии Enterprise от бесплатной заключаются в:
□ возможности настройки дизайна страницы результатов поиска с помощью Perl, C++, XSLT;
□ настраиваемом поиске в отдельных частях документа;
□ поиске в нескольких коллекциях документов с возможностью слияния результатов;
□ индексировании документов, хранящихся в СУБД;
□ поддержке индексирования документов в форматах, отличных от простого текстового и HTML (XML, RTF, PDF, DOC, XLS, PPT, FLASH, MP3 — с возможностью расширения этого списка).
Но даже бесплатная версия обеспечивает организацию многих поисковых возможностей Яндекса. Эта версия не содержит лицензионных ограничений на число индексируемых документов, их размер или суммарный размер индекса. Позволяет индексировать документы как через HTTP-соединение, так и чтением локальной файловой системы. Дает независимо настраивать параметры индексирования для разных групп документов. Поддерживает все возможности языка запросов, ранжирования результатов поиска и подсветки найденных слов. Но вывод результатов делает только на встроенную форму дизайна. Кроме того, на использование бесплатной версии имеются и другие ограничения. Так, недопустимо изменение встроенного дизайна страниц результатов поиска, полученных с помощью этой программы, удаление информации об авторских правах. Иными словами, устанавливая программу на свой веб-ресурс, вы не сможете подогнать дизайн поисковика к дизайну вашего сайта. Эта возможность доступна лишь в версии Enterprise.
10.1.1. Настраиваем Яndex.Server
Программу можно разделить на две основные и две вспомогательные подсистемы:
□ основные — подсистема индексации и подсистема поиска. Индексатор обеспечивает анализ документов и сохранение информации о них в индексных файлах. Поисковый сервер обрабатывает запросы и формирует полученные результаты;
□ вспомогательные — это языковой модуль, предназначенный для преобразования слов к их словарным формам с учетом морфологии языка, и шаблоны выходных страниц.
В связи с тем, что объем индексируемой информации на сайте или в локальной сети конечен, индексатор анализирует документы и сохраняет данные о них в индексных файлах, после чего прекращает работу. Если на вашем вебсервере информация меняется, то необходимо обновлять и проиндексированные данные, для чего требуется заново запускать индексатор. При повторном индексировании возможно как выполнение всей работы заново, так и выполнение лишь обновления сведений, размещенных в индексе.
Индексирование выполняется без остановки поискового сервера, имеются возможности создания компактных индексов, использования стоп-слов, распознавания зон в HTML- и XML-документах, распознавания кодировок и использования различных фильтров при индексации.
Установка и настройка
Для установки программы под Windows (есть релизы и под другие системы —.nix, FreeBSD, Sun Solaris) достаточно распаковать дистрибутив в выбранный вами раздел (размер дистрибутива для Windows составляет примерно 6 Мбайт), отредактировать конфигурационный файл, установить программу в качестве системного сервиса. После выполнения этих действий поиск готов к работе.
Очень важно правильно настроить конфигурационный файл. С его помощью вы можете настроить программу на конкретные условия вашего сервера — указать, какие каталоги и типы файлов индексировать, а какие исключить, выбрать кодировку русского языка, указать способ получения документов (непосредственно из каталога или через веб-сервер), перестраивать ли весь индекс при новом индексировании или организовать обновление и слияние.
Конфигурационный файл обычно называется yandex.cfg и располагается в том же каталоге, где находится выполняемый модуль Яndex. Server (для Windows). В этом файле можно определять параметры, относящиеся к сервису в целом, к процессу индексирования и процессу поиска. Каждый параметр определяется своей директивой, состоящей из одного или нескольких слов, разделенных пробельными символами.
Директивы конфигурационного файла могут быть сгруппированы в секции. Каждая секция начинается со строки <имя_секции> и кончается строкой </имя_секции>, где Имя_секции соответствует параметру, настраиваемому с помощью одной или нескольких директив, расположенных внутри секции. Секции могут быть вложенными.
Секция Server
Секция Server, не являющаяся обязательной, определяет настройки сервера. В ней могут быть определены:
□ IP-адрес, на котором работает Яndex.Server. Значение должно соответствовать одному из допустимых IP-адресов компьютера;
□ порт, на котором работает Яndex.Server. По умолчанию используется порт 17000;
□ хост, на котором работает Яndex.Server. Значение по умолчанию: официальное имя хоста;
□ количество одновременно выполняемых поисковых запросов. Если уже выполняется определяемое данной директивой количество запросов, выполнение вновь поступивших запросов откладывается до тех пор, пока не будут выполнены текущие запросы. По умолчанию это значение равно 5;
□ максимальный размер очереди поисковых запросов, ожидающих начала выполнения. В случае нулевого значения директивы максимальный размер очереди запросов бесконечен. Если начала выполнения уже ожидает определяемое данной директивой количество запросов, на вновь поступившие запросы сервер отвечает HTTP/1.0 503 Service Unavailable и не выполняет их;
□ рабочий каталог Яndex.Server. Должен быть указан абсолютный путь;
□ путь к файлу, в который будут выводиться сообщения Яndex.Server.
В этой же секции может быть определена подсекция авторизации. Она предназначена для задания параметров авторизации административного режима управления веб-сервером, а задаются в ней имя и пароль пользователя.
От того, задана эта секция или нет, зависит возможность административного доступа к серверу с различных компьютеров сети. Если секция задана, доступ возможен с любого компьютера. При отсутствии секции в конфигурационном файле доступ возможен только с того компьютера, на котором установлен сервер. Пример секции Server приведен в листинге 10.1.
Листинг 10.1. Пример секции Server
<Server>
Port 80
Host www.my_site.ru Threads 4 QueueSize 20 <Authorization>
UserName webadmin UserPassword abv12345 </Authorization>
</Server>
Секция Collection
Поисковый сервер работает с одной или несколькими коллекциями документов, в которых осуществляется поиск. Поиск в каждой коллекции документов осуществляется независимо. По сути коллекции — это наборы документов, разделов сайта, связанные определенными критериями, которые устанавливают их владельцы. Каждая коллекция характеризуется уникальным именем, а если существует только одна коллекция документов, ее имя обычно в конфигурационном файле выбирается пустым. При индексировании для каждой коллекции запускается отдельная подсистема, использующая определенные в конфигураторе правила индексации. При выборе имени коллекции помните, что несколько слов запрещены для использования: admin, images, hl.
Секция Collection включает ряд директив и подсекций. Они требуются для того, чтобы создать, а в дальнейшем обновлять, индексные файлы, используемые поисковой машиной. До тех пор, пока индексные файлы не созданы, ни о каком поиске речи быть не может. Но что индексировать и где размещать индексные файлы? На эти вопросы и отвечают значения директив этой секции.
Для каждой коллекции наборы индексных файлов размещаются в отдельных каталогах, описываемых в конфигурации коллекций. Состав набора индексных файлов также может быть различным. Он зависит от заданных настроек. При индексировании создаются базовые индексы, в которых сохраняется информация о каждом слове документа (за исключением стоп-слов) — идентификатор документа, в котором слово найдено, номер предложения и номер слова в предложении. В этих же файлах сохраняется информация о зонах и атрибутах документов. В других индексных файлах сохраняется неотформатированный текст документов, еще одна пара индексных файлов может сохранять информацию о группировочных атрибутах. Их наличие позволяет группировать и сортировать найденные документы по значению атрибута.