Яндекс для всех
Шрифт:
В этой же секции может быть определена подсекция авторизации. Она предназначена для задания параметров авторизации административного режима управления веб-сервером, а задаются в ней имя и пароль пользователя.
От того, задана эта секция или нет, зависит возможность административного доступа к серверу с различных компьютеров сети. Если секция задана, доступ возможен с любого компьютера. При отсутствии секции в конфигурационном файле доступ возможен только с того компьютера, на котором установлен сервер. Пример секции 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>
Поисковый сервер работает с одной или несколькими коллекциями документов, в которых осуществляется поиск. Поиск в каждой коллекции документов осуществляется независимо. По сути коллекции — это наборы документов, разделов сайта, связанные определенными критериями, которые устанавливают их владельцы. Каждая коллекция характеризуется уникальным именем, а если существует только одна коллекция документов, ее имя обычно в конфигурационном файле выбирается пустым. При индексировании для каждой коллекции запускается отдельная подсистема, использующая определенные в конфигураторе правила индексации. При выборе имени коллекции помните, что несколько слов запрещены для использования: admin, images, hl.
Секция Collection включает ряд директив и подсекций. Они требуются для того, чтобы создать, а в дальнейшем обновлять, индексные файлы, используемые поисковой машиной. До тех пор, пока индексные файлы не созданы, ни о каком поиске речи быть не может. Но что индексировать и где размещать индексные файлы? На эти вопросы и отвечают значения директив этой секции.
Для каждой коллекции наборы индексных файлов размещаются в отдельных каталогах, описываемых в конфигурации коллекций. Состав набора индексных файлов также может быть различным. Он зависит от заданных настроек. При индексировании создаются базовые индексы, в которых сохраняется информация о каждом слове документа (за исключением стоп-слов) — идентификатор документа, в котором слово найдено, номер предложения и номер слова в предложении. В этих же файлах сохраняется информация о зонах и атрибутах документов. В других индексных файлах сохраняется неотформатированный текст документов, еще одна пара индексных файлов может сохранять информацию о группировочных атрибутах. Их наличие позволяет группировать и сортировать найденные документы по значению атрибута.
В секции необходимо определить имя файла, в который будут записываться результаты индексирования, например, так:
IndexLog indexer.log
Также должен быть определен каталог, где будут размещаться индексные файлы. Если этот каталог отсутствует, при выполнении индексирования он будет создан. Если же такой каталог уже существует, и в нем находятся индексные файлы, созданные при предыдущем индексировании, они будут учтены при построении нового индекса. В какой мере они будут учитываться, определяется дополнительными директивами конфигурационного файла.
Вы, наверно, помните, что "большой" Яндекс индексирует не все слова, найденные в документах. Существует определенный набор стоп-слов, которые игнорируются в процессе обработки. Рассматриваемая программа также может учитывать стоп-слова, не подлежащие индексированию. Этот список входит в состав поставки в виде файла, который вы можете самостоятельно редактировать. При этом необходимо учитывать лишь то, что текст в нем должен быть набран в кодировке Windows-1251. Директива, определяющая имя файла, называется stopWordFiie.
На Яндексе при просмотре результатов поиска для найденных документов присутствует ссылка Сохраненная копия, позволяющая посмотреть документ даже в том случае, если он удален с сайта. Аналогичная возможность есть и в программе Яndex.Server. Режим сохранения документов (без элементов форматирования) задается директивой storeArchive, используемой по умолчанию. Если вы не отказываетесь от использования этой опции, помните, что в этом случае архив сохраненных документов (текстов) может иметь размер до 30–40 % от общего объема проиндексированных документов.
Следующая интересная директива управляет режимом индексирования с учетом точных словоформ. Задание этого ключа ведет к добавлению в индекс информации о точных формах встречающихся в документах слов, что позволяет в языке запросов использовать оператор! поиска по точной словоформе.
При этом размер индекса увеличивается примерно в 2 раза. (В последней версии программы точные словоформы учитываются всегда.)
К примеру, при использовании словоформ при поиске слова иди в результаты попали различные формы этого слова, такие как "иду", "идем", "шли", "идущий", "идет" и др. Если бы параметр задан не был, нашлись бы только точно совпадающие с искомым слова.
На начальном этапе настройки с помощью директивы Debug можно задать режим получения отладочной информации.
Для того чтобы поисковый сервер знал, где находятся документы, подлежащие индексированию, в конфигурационном файле описывается область индексирования — множество документов, которые индексируются с единым набором параметров. Например, каждый внешний источник данных соответствует одной отдельной области индексирования. Одной области индексирования принадлежат и все документы, путь к которым задан префиксом URL.
Область индексирования определяется секцией IndexedArea. В одном конфигурационном файле таких секций может быть несколько.
Существует три способа получения данных для индексирования:
чтение файлов, доступных в локальной сети, где работает индексатор, с использованием протоколов операционной системы;
обращение к веб-серверам по протоколу HTTP;
обращение к произвольному внешнему источнику данных по специальному протоколу, реализованному в модуле связи с источником данных.
Если URL получен чтением файлового каталога, содержимое документа может быть получено как чтением файла, так и по протоколу http — в зависимости от настроек. Если URL получен в результате распознавания гипертекстовой ссылки, содержимое документа может быть получено по протоколу HTTP. С помощью чтения локального файла содержимое документа можно получить, только если соответствующий веб-хост принадлежит локальной сети, и в настройках индексатора указаны нужные пути. Если содержимое документа может быть получено только по протоколу HTTP, документ считается принадлежащим внешнему хосту. Индексатор может проиндексировать только те внешние хосты, которые явно указаны в настройках.