Сайт переехал!
Новый адрес этой страницы:
slava.khersoncity.com/pub/local_search.php





















Локальный глобальный поиск

Статья о том, как построить свою поисковую систему, шуструю как Яndex, но без рекламы, и к тому же не требующую подключения к Интернету.

Все началось с того, что в процессе работы за компьютером и просто из любопытства постоянно приходилось что-то искать или быстро вспоминать "хорошо забытое старое", наверное каждому знакома такая ситуация. Одних только (гипер)текстовых файлов на моём компьютере – больше сотни тысяч, обычный поиск по ним средствами Windows или FAR Manager ну никак не устраивал как по скорости, так и по наглядности выдаваемых результатов. Да, сейчас есть программы, судя по описанию творящие чудеса поиска по любым форматам документов, вплоть до PDF, не пробовал, потому что влюбился... в поисковый скрипт RiSearch.

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

Для установки потрубуется персональный контупер, операционная система Windows (по желанию можно заменить любой "..NIX"), web-сервер (рекомендую Apache), интерпретатор Perl, сам скрипт, и немного прямых рук, которых так часто в этой жизни не хватает...

Теперь всё по порядку. Контупер покупается в магазине, желательно компутерном. Операционная система Windows – там же, или сами знаете где. Апач качаем например с www.apache.org. Главное – чтобы релиз был стабильным, не слишком древним и собранным именно для вашей операционки. С Перлом аналогично, для виндов рекомендую www.activestate.com, чтоб меньше проблем было. Скрипт качаем c Risearch.org, бесплатную Pro-версию с возможностью морфологического поиска.

Итак, начнем-с. Для начала нужно дать компьютеру постоянный IP-адрес. Объясняю как это делается на примере Win98SE как самой распространенной. Жмем правой кнопкой на Сетевом окружении (если его нет на Рабочем столе – оно прячется в Пуск -> Настройка -> Панель управления -> Сеть), выбираем "Свойства". Во вкладке "Конфигурация" выделяем строку TCP/IP, а если в вашем компьютере прижилась сетевай карта, то TCP/IP -> Название_вашей_сетевой_карты. Жмем кнопку "Свойства", заходим во вкладку "IP-адрес", кнопкой выбираем строку "Указать IP-адрес явным образом", вводим его, например 192.168.2.1, маска подсети 255.255.255.0. Ок, Ok, обязательно перезагружаем комп. Проверяем настройки: открываем командную строку / Сеанс MS-DOS / FAR (по вкусу), пишем (без кавычек) "ping 192.168.2.1", жмем Enter. Если есть отклики, все в порядке. Если нет (все пакеты потерялись) – возвращаемся в сетевой окружение, удаляем TCP/IP, тут же его снова ставим, настраиваем и так далее по кругу пока не появятся отклики.

Следующий шаг – Apache. Объясняю на примере версии 1.3.9. Устанавливается как обычная программа, все основные и нужные делу настройки собраны в одном файле ../Apache/conf/httpd.conf. Сразу запускаем ненастроенную программу Пуск -> Программы -> Apache Web Server -> Start Apache и настраиваем то, на что вылетает ошибка. Полезными окажутся логи сервера, немного знаний английского (даже на интуитивном уровне через слово понимать – будет достаточно) и как всегда незаменимый FAR manager. Настройка происходит примерно следующим образом: выбираете из сообщения об ошибке ключевое слово, ищите его в файле httpd.config и прописываете ему нужный параметр. Изменения вступают в силу только после перезапуска программы.

Возможно, перед каждым запуском сервера придётся постоянно удалять файл httpd.pid. Для автоматизации я использую bat-файл примерного содержимого:

C:
cd progra~1
cd apache~1
cd apache
cd logs
del httpd.pid
cd C:\
cd progra~1
cd apache~1
cd apache
cls
apache -s

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

Apache/1.3.9 (Win32) running...

, можно выпить пивка, почти полдела сделано.

Установка Перла – самый простой этап. Установите дистрибутив Activestate туда, куда он сам просится (C:\Perl). Теперь в какую-то отдельную папку переместите всё, что нужно будет индексировать, в неё же разархивируйте скрипт. Все настройки находятся в файле riconfig.pm, описание – в документации к скрипту. Во всех файлах с расширением .pl первую строку меняем на

#!c:/perl/bin/perl

Запускаем из броузера admin.pl, жмём на самую нижнюю кнопку Start, ждём завершения индексации. Время ожидания прямопропорционально количеству индексируемых файлов и обратнопропорционально производительности компьютера. Момент окончания индексирования можно легко определить: прекращается мигание индикатора обращений к винчестеру, загрузка процессора станет меньше 100% (рекомендую крайне полезную утилиту CPU Meter). Пополнить свой винт текстами рекомендую многочисленными оффлайновыми электронными журналами, а также с сайта zipsites.ru (веб-сайты одним архивом). Есть одна заковырка: желательно сразу избавиться от символов "#" (решетка), пробел и русских названий в именах подлежащих индексации каталогов и файлов, чтобы обеспечить совместимость с броузером. Настройка интерфейса скрипта и перевод сообщений на русский язык – в файле template.htm. Особенность Pro-версии скрипта в отличае от обычной в том, что искать можно, не дожидаясь окончания индексации; производится сортировка результатов по релевантности; выделяются найденные слова, а не только начало текста, и т. д. Недостаток – наблюдал у себя произвольное прекращение индексации. Приходилось запускать несколько раз, благо уже проиндексированные файлы пропускаются. Тем не менее в итоге отличная вещь получается! Удачи.

Конечно-же, я обязательно что-то пропустил. Но не потому, что такой я вредный, просто невозможно предугадать уровень подготовки читателя. Это к тому, что будут вопросы – задавайте. Используете всё написанное на свой страх и риск. Любые претензии, вызванные вашими неумелыми действиями, не принимаются.

Перепечатка разрешена только с гиперссылкой (http://skydiveh1.narod.ru/pub/local_search.html) на эту страницу!

Начальная страница
Пишите письма на skydiveh1@narod.ru или 2:468/57.28@fidonet
Hosted by uCoz