На главную

RiSearch v.1.0 Manual

© С. Тарасов

Настройка

      Все конфигурационные параметры находятся в файле riconfig.pm. Назначение большинства параметров достаточно очевидно и не требует пояснений.

  1.  base_dir => ".",  - путь к директории, где расположены Ваши html файлы. Если index.pl расположен в той же директории, оставьте этот параметр как есть. Учтите, что здесь и далее надо указывать либо относительный путь к файлу, либо полный, начиная с корня файловой системы (а не корневого каталога вебсервера). Дополнительная информация.

  2.  base_url => "http://www.server.com/",  - URL Вашего сайта.

  3.  site_size => 2,  - данный параметр регулирует размер базы данных и скорость поиска.

  4.  compact_index => 1,  - индекс занимает меньший объем, но число документов ограничено 65535.

  5.  indexing_speed => 1,  - Данный параметр определяет скорость индексации: 0 - медленная индексация, но скрипту требуется меньше оперативной памяти; 1 - быстрая индексация, требуется больше памяти.

  6.  temp_db_size => 20000000,  - размер блока оперативной памяти для хранения промежуточного индекса. Большее значение ускоряет индексацию и позволяет построить более эффективный (менее фрагментированный) индекс.

  7.  non_parse_ext => 'txt',  - список расширений файлов, в которых не требуется удаление HTML тегов.

  8.  bin_ext => 'ppt xls',  - файлы с данными расщирениями не будут индексироваться, но УРЛ будут проиндексированы.

  9.  numbers => '0-9',  - скрипт вырезает их файла все небуквенные символы и индексирует только то, что останется. Кроме символов латинского алфавита, скрипт оставляет символы национальных алфавитов (описаны ниже). В параметре $numbers Вы можете указать, какие еще символы должны индексироваться (например цифры, символ подчеркивания и т.д.)

  10.  use_selective_indexing => "NO",  - данная опция полезна при индексировании больших сайтов со сложной навигацией, новостными колонками и прочими элементами дизайна, которые появляются почти на каждой странице сайта и не должны индексироваться. Она позволяет указать индексирующему скрипту фрагменты кода, которые должны быть вырезаны в процессе анализа страницы. Для этого необходимо включить эту опцию ("YES") и подредактировать нижеследующие строки в "config.pl".

     no_index_strings = (
      q[<!-- No index start 1 -->] => q[<!-- No index end 1 -->],
      q[<!-- No index start 2 -->] => q[<!-- No index end 2 -->],
     );

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

  11.  cut_default_filenames => 'YES',  - позволяет вырезать имя файла (например "index.html") из URL в результатах поиска.

  12.  INDEXING_SCHEME => 2,  - способ индексирования слов. При значении "1" индекс составляется на основе всего слова. Этот способ обеспечивает наиболее быстрый поиск, но будут найдены только слова точно соответствующие запросу. Может быть полезно для очень больших сайтов.

    При значении "2" индекс составляется по началу слова (используется первые 4 буквы). В этом случае скрипт найдет все слова, которые начинаются с указанной подстроки. Например, по запросу "город*" будут найдены слова: "город", "городок", "городской", "городовой".

  13.  use_stop_words => "YES",  - список слов, которые не надо индексировать.

  14.  verbose_output => 1,  - во время индексации скрипт будет печатать информацию о каждом проиндексированном файле. Измените значение на "0", чтобы печатать информцию о каждом сотом файле.

  15.  min_length => 3,  - минимальная длина слова.

  16.  max_length => 32,  - максимальная длина слова (более длинные слова будут обрезаны).

  17.  max_doc_size => 1000000,  - максимальный размер документа (более длинные документы будут обрезаны).

  18.  res_num => 10,  - число результатов на странице.

  19.  max_res_found => 0,  - ограничение максимального числа найденных документов (0 - нет ограничений).

  20.  del_descr_chars => "",  - перечисленные здесь символы будут удалены из описаний документов.

  21.  url_length_limit => 0,  - ограничение максимальной длины УРЛ в результатах поиска (0 - нет ограничений).

  22.  def_search_type => 1,  - ТИп поиска по умотчанию: 0 - поиск по подстроке (можно применять только вместе с INDEXING_SCHEME => 2); 1 - точный поиск.

  23.  def_search_mode => "AND",  - Режим поиска по умолчанию: "AND" или "OR".

  24. Файл riconfig.pm содержит несколько других параметров, которые документированы в самом файле.

Индексирование нелатинских символов

      Скрипт имеет некоторые средства для работы с языками, которые содержат символы, отличные от латинского алфавита. Для начале необходимо задать коды заглавных и строчных символов используемого алфавита, чтобы скрипт знал, как перекодировать слова в нижний регистр. Значения для русской кодировки windows-1251 приведены ниже (эти же настройки можно использовать для большинства европейских языков):

 CAP_LETTERS => '\xC0-\xDF\xA8',  - укажите коды заглавных букв Вашего языка (тех, которые отличаются от латинских).


 LOW_LETTERS => '\xE0-\xFF\xB8',  - укажите коды строчных букв Вашего языка (тех, которые отличаются от латинских).

      Часто на HTML страницах используются особые обозначения для национальных символов, такие как &Egrave; или &#255;. Скрипт может автоматически заменить эти обозначения на соответствуюшие символы, для чего установите следующую переменную в конфинурационном файле (установлена по умолчанию):

 use_esc => "YES", 

      Если же вы используете юникод в виде &#NNNN; (где NNNN > 255), то вам потребуется вписать в конфиг правила соответствия между юникодовским номером символа и его номером в какой-либо однобайтовой кодировке:

 code2char => { 
  1040 => "А", 
  1041 => "Б", 
  1042 => "В", 
  1043 => "Г", 
 }, 

      Правила соответствия для некоторых языков можно найти в файле unicode.txt.

Использование робота-паука

      Робот-паук использует все вышеописанные параметры (за исключением  base_dir  и  base_url ). Вам необходимо установить всего две дополнительные переменные.

  1.  start_url  - Список УРЛ, с которых начнется индексирование.

  2.  spider_delay => 0, - задержка между запросами в секундах.

  3.  max_depth => 20, - максимальная глубина индексирования (число "кликов" от стартовой страницы до текущей страницы).

  4.  login => "",  - Логин для доступа к закрытому сайту (используется только при индексации через HTTP).

  5.  password => "",  - Пароль для доступа к закрытому сайту (используется только при индексации через HTTP).

  6.  proxy => "http://user:password@server.com:port/",  - прокси сервер для индексации через HTTP.

  7.  use_robots_txt_rules => 0,  - следовать или нет правилам из "robots.txt".

  8.  e_mail => 'foo@bar.com',  - e-mail вебмастера.

Написание фильтров

      То, какие файлы нужно индексировать, скрипт решает на основе фильтров (rules в файле riconfig.pm). Фильтр состоит из нескольких правил, указывающих, индексировать данный файл или нет. Правила применяются поочередно, конечный результат и определит судьбу файла. Правило состоит из команды ( Index, NoIndex, Follow, NoFollow, Allow или Disallow), нескольких необязательных модификаторов (Match, NoMatch, Case, NoCase, RegExp) и одного или нескольких шаблонов, с которыми будет сравниваться адрес файла.

      Команда Index означает, что файл нужно индексировать, если его адрес удовлетворяет шаблону (соответственно, команда NoIndex запрещает индексирование файла).

      Команда Follow разрешает следовать по ссылкам данного файла для дальнейшего индексирования (соответственно, команда NoFollow запрещает следование по сслыкам).

      Команда Allow является синонимом Index Follow. Команда Disallow является синонимом NoIndex NoFollow. Используйте Follow NoIndex для того, чтобы следовать по ссылкам данного документа без индексации самого документа.

      Модификатор Match (действует по умолчанию) означает, что адрес должен удовлетворять шаблону, чтобы сработала текущая команда. При наличии модификатора NoMatch команда сработает для всех файлов, которые НЕ УДОВЛЕТВОРЯЮТ шаблону.

      Модификаторы Case и NoCase (по умолчанию NoCase) означают, что сравнение с шаблоном производится с учетом регистра (без учета регистра).

      Модификатор RegExp (по умолчанию отключен) позволяет использовать Перловые шаблоны для написания фильтров.

      В шаблоне допускается использование одного метасимвола - "*", означающего любое число произвольных символов. Если нужны более сложные шаблоны, используйте модификатор RegExp и тогда вам будут доступны все возможности регулярных выражений языка Перл.

      Пример:

 Disallow * 
 Allow http://risearch.org/* 
 Disallow */cgi-bin/* */img/* */temp/* 
 Disallow NoMatch *.htm *.html *.txt */ 

      В даном случае мы запрещаем индексирование всех файлов (первая строка), за исключением тех, что лежат на сервере http://risearch.org/ (вторая строка). Затем запрещаем индексировать директории cgi-bin, img и temp (третья строка). Затем запрещаем индексировать все URL, которые не имеют расширений htm, html, txt, либо которые не оканчиваются слэшем.



http://risearch.org С.Тарасов, © 2000-2003