Литмир - Электронная Библиотека
Содержание  
A
A

В секции необходимо определить имя файла, в который будут записываться результаты индексирования, например, так:

IndexLog indexer.log

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

Вы, наверно, помните, что "большой" Яндекс индексирует не все слова, найденные в документах. Существует определенный набор стоп-слов, которые игнорируются в процессе обработки. Рассматриваемая программа также может учитывать стоп-слова, не подлежащие индексированию. Этот список входит в состав поставки в виде файла, который вы можете самостоятельно редактировать. При этом необходимо учитывать лишь то, что текст в нем должен быть набран в кодировке Windows-1251. Директива, определяющая имя файла, называется stopWordFiie.

На Яндексе при просмотре результатов поиска для найденных документов присутствует ссылка Сохраненная копия, позволяющая посмотреть документ даже в том случае, если он удален с сайта. Аналогичная возможность есть и в программе Яndex.Server. Режим сохранения документов (без элементов форматирования) задается директивой storeArchive, используемой по умолчанию. Если вы не отказываетесь от использования этой опции, помните, что в этом случае архив сохраненных документов (текстов) может иметь размер до 30–40 % от общего объема проиндексированных документов.

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

При этом размер индекса увеличивается примерно в 2 раза. (В последней версии программы точные словоформы учитываются всегда.)

Примечание

К примеру, при использовании словоформ при поиске слова иди в результаты попали различные формы этого слова, такие как "иду", "идем", "шли", "идущий", "идет" и др. Если бы параметр задан не был, нашлись бы только точно совпадающие с искомым слова.

На начальном этапе настройки с помощью директивы Debug можно задать режим получения отладочной информации.

Области индексирования

Для того чтобы поисковый сервер знал, где находятся документы, подлежащие индексированию, в конфигурационном файле описывается область индексирования — множество документов, которые индексируются с единым набором параметров. Например, каждый внешний источник данных соответствует одной отдельной области индексирования. Одной области индексирования принадлежат и все документы, путь к которым задан префиксом URL.

Область индексирования определяется секцией IndexedArea. В одном конфигурационном файле таких секций может быть несколько.

Существует три способа получения данных для индексирования:

□ чтение файлов, доступных в локальной сети, где работает индексатор, с использованием протоколов операционной системы;

□ обращение к веб-серверам по протоколу HTTP;

□ обращение к произвольному внешнему источнику данных по специальному протоколу, реализованному в модуле связи с источником данных.

Если URL получен чтением файлового каталога, содержимое документа может быть получено как чтением файла, так и по протоколу http — в зависимости от настроек. Если URL получен в результате распознавания гипертекстовой ссылки, содержимое документа может быть получено по протоколу HTTP. С помощью чтения локального файла содержимое документа можно получить, только если соответствующий веб-хост принадлежит локальной сети, и в настройках индексатора указаны нужные пути. Если содержимое документа может быть получено только по протоколу HTTP, документ считается принадлежащим внешнему хосту. Индексатор может проиндексировать только те внешние хосты, которые явно указаны в настройках.

Способ доступа к данным для каждой секции indexedArea определяется единственным образом и должен включать одну из возможных директив. Директива HttpPrefix определяет доступ по HTTP-протоколу, директива FilePrefix определяет путь к разделу в локальной сети.

Но можно обойтись и без этих директив, если список начальных адресов (URL) будет в явном виде задан в ключе StartUrls, например, так:

StartUrls = http://localhost/my_site/index.htm

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

Например, для определения режима получения URL документа применяются такие директивы:

□ IndexFollow — индексирует документы и распознает гипертекстовые ссылки для получения URL новых документов;

□ IndexNofollow — позволяет индексировать документы, но не распознает гипертекстовые ссылки для получения URL новых документов;

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

Поисковый сервер и защита от роботов

А вот еще одна интересная особенность продукта, в какой-то мере раскрывающая и работу "пауков" большого Яндекса. Веб-страницы могут содержать специальный мета-тег robots. Этот мета-тег имеет более высокий приоритет, чем настройки индексатора или директивы управления, заданные в файле robots.txt. То есть если директивы управления в файле robots.txt разрешают индексировать все файлы в каталоге, то блокирующий мета-тег <meta name="robots" content="noindex, nofollow"> может запретить индексирование страницы, находящейся в этом каталоге.

По умолчанию Яndex.Server учитывает содержимое этого мета-тега, что позволяет запретить роботу индексировать какую-то страницу или следовать по ссылкам, содержащимся на ней. Но директивы, входящие в состав конфигурационного файла, могут как разрешить, так и игнорировать значения тега:

□ AllowMetaRobots — учитывает при индексировании содержимое метатега robots;

□ IgnoreMetaRobots — игнорирует содержимое мета-тега.

При индексировании документов по протоколу HTTP Яndex.Server поддерживает стандарт исключений для роботов. В соответствии с этим стандартом, правила, управляющие поведением поискового робота, должны располагаться в файле /robots.txt, лежащем в корне веб-сервера. Но и здесь есть обходные маневры (впрочем, обходные лишь для вас, поскольку на свой веб-сервер этот поисковик вы будете устанавливать сами, и сами будете определять, что включать в состав индексируемых документов, а что не включать). Пример конфигурации HTTP-запросов при индексировании хоста приведен в листинге 10.2.

Листинг 10.2. Пример конфигурации HTTP-запросов при индексировании хоста

<HttpOptions name="myhttp">

Timeout: 150 Delay: 0

ProxyUrl: http://proxy.my_site.ru:8080 <Authorization>

UserName: my_site UserPassword: abf12345 </Authorization>

<Headers>

User-Agent: MyYandexServer/3.0 From: [email protected] Accept-Language: ru, *;q=0.1 MyHeader: TestStroka </Headers>

</HttpOptions>

Если вам нужно, чтобы Яndex.Server при индексировании вашего сайта не учитывал общие правила для поисковых роботов, модифицируйте файл robots.txt, добавив специальное правило для User-Agent, заданного при конфигурировании HTTP-запросов. В следующем примере (листинг 10.3) каталог скриптов закрывается от всех роботов, кроме робота MyYandexServer, которому открыто все.

103
{"b":"215355","o":1}