13 лет назад 10 января 2006 в 16:18 91

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

Веб-мастер, доверившийся какой-либо CMS (Content Management System) – сайтовому движку – в придачу получает готовый поисковый механизм, как правило, не нуждающийся в дополнительной настройке. Однако в силу “кривизны” определенной части CMS или неопытности администратора поисковик веб-ресурса нередко оказывается неработоспособным. А как быть тем, кто до сих пор исповедует сайтостроительство в “чистом” HTML? Еще большую головную боль получают владельцы ресурсов, разместившие страницы на площадках бесплатного хостинга.

Казалось бы, положение безвыходное. Но нет: умные головы давно нашли выход, разработав так называемые поисковые движки (Search Engines), базирующиеся на различных программных языках. Причем для их освоения не требуется особых навыков в области программирования. Все, что нам понадобится, это системный Блокнот, любой вменяемый FTP-клиент и, разумеется, дистрибутивы – либо движка, либо программ, создающих поисковый скрипт. Мы выбрали эти продукты, исходя из простоты их освоения и поддержки ими индексации русскоязычного контента вкупе с корректным выводом результатов запроса.

SITE SEARCH PRO 2.0
www.site-search-pro.com
Это украинская коммерческая разработка, включающая три версии продукта: Lite ($29), Business ($69) и Gold ($99). Для полноценной работы требуется хостинг с поддержкой PHP и MySQL, ко всему прочему гарантируется поддержка Apache SSI. Дистрибутивы всех версий содержат папки с PHP-страницами, размер архива не превышает 200 кб.

Установка продукта чрезвычайно проста: распакованный каталог с дистрибутивом (по умолчанию именуется SEARCHPRO; название можно изменить) следует загрузить в корневую директорию своего веб-сайта в режиме ASCII и средствами FTP-клиента установить для вложенных папок DATA и IMG/BUTTONS атрибут “777” (Read-Write-Execute) в секциях Owner, Group и Public. К слову сказать, этот шаг типичен для установки большинства движков сайтов.

Далее в браузере откроем ссылку вида http://www.ваш_сайт.ru/имя_папки_движка и введем реквизиты для базы данных (DB host, DB user, DB name и DB password), предоставляемые вашим хостером. После этого засекретимся, установив свою связку логин/пароль для доступа к интерфейсу администрирования (не забывайте, что логин “admin” и пароль “12345” давно стали секретом Полишинеля). После несложных “бюрократических” мероприятий будет предложено ввести свои новые данные, после чего страждущие попадут в интерфейс управления поисковым движком, каковой, в принципе, аналогичен для всех версий Site Search Pro.

Site Search Pro Lite представляется разработчиками для использования с небольшими “домашними” и некоммерческими HTML-сайтами – для таких ресурсов, не содержащих динамически обновляемого контента, вполне достаточно возможностей “детской” версии. Действительно, на сайтах данного класса редко возникает потребность поиска офисных документов – вся необходимая информация сосредоточена обычно в форматах HTML и TXT.

В Lite-версии для функционирования системы поиска используется база данных MySQL, поскольку индексация при работе с текстовой БД займет непростительно долгое время. Невзирая на кажущуюся ограниченность функционала, Site Search Pro Lite успешно работает на веб-ресурсах, содержащих более тысячи страниц.

Перед индексацией веб-контента нелишне будет указать поисковику каталоги сайта (Negative folders) и файловые расширения (Negative file types), не нуждающиеся в учете. Нет никакой необходимости “натравливать” Site Search Pro на папки CGI-BIN, каталоги с графикой и другие, в результате сканирования которых намного увеличится время индексации, а поиск таких субстанций никогда не будет востребован. Например, в нашем случае тестовый сайт содержал форум на движке phpBB, где реализован собственный поисковый механизм, и индексация колоссального числа форумных страниц выглядела, мягко говоря, нерационально.

В процессе индексации (Toolbox Panel > Indexing) поисковик находит все HTML-страницы ресурса и считывает контент непосредственно в базу данных – просто, как все гениальное. Индексация занимает от десятков секунд до нескольких минут (в нашем случае – 19 секунд при созданной базе данных размером 2,45 Мб), и после жизнеутверждающей информации “Индексация завершена, система готова к работе” можно смело проверить работоспособность поисковика: Toolbox Panel > Go to search. Как мы ни старались испортить жизнь Lite-версии, движок показал исключительно достойные результаты: русскоязычные запросы обрабатывались практически мгновенно и абсолютно корректно, равно как и англоязычные фразы поиска.

В оригинальный HTML-код поисковой формы можно внести некоторые изменения, например: если вас не устраивает умолчальное название кнопки Search, отправляйтесь в секцию Labels интерфейса управления и в поле Search button label впишите желаемое слово. Причем без труда меняются фразы для отрицательных результатов поиска (No pages were found text) и при вводе запроса, состоящего менее чем из двух символов (Search term is less than 2 symbols). На разделах Design и Installation Code лишь бегло остановимся: в первом случае администратору дается возможность изменить интерфейс элементов поисковой формы и выбрать дизайн вывода результатов, во втором – выдается код этой самой формы в четырех инкарнациях, включая JavaScript и PHP.

Неоспоримое достоинство линейки Site Search Pro – более чем подробная статистика по запросам (Toolbox Panel > Indexing): отображаются дата и время, а также число запросов по тому или иному слову/фразе вкупе с IP-адресом интересующегося субъекта. Еще одно преимущество движков Site Search Pro – возможность доступа к интерфейсу нескольких администраторов со своими логинами и паролями, причем каждому админу можно указать как все области администрирования, так и строго определенные (например, конкретному индивидууму будет запрещено заглядывать в разделы дизайна и статистики).

Безусловно, недостатком версии Lite можно считать ограниченность контента, подлежащего индексации, не говоря уже о невозможности применять данный продукт на динамических сайтах. Однако для подобных ресурсов существует гораздо более продвинутая версия Gold. Главным отличием “золотой” версии является индексация контента, в том числе и динамического, в режиме реального времени – точно так же работает, например, поисковик Google. Site Search Pro Gold начинает свой путь с главной страницы, а затем путешествует по всем ссылкам сайта до тех пор, пока все страницы не будут проиндексированы. Расширен и ассортимент файловых форматов – Site Search Pro Gold умеет индексировать документы в форматах Word, Excel, RTF, PDF и ролики Macromedia Flash.

Административный интерфейс пополнился новыми функциями. Так, например, можно задать кодировку сайта (раздел Settings > Encoding), есть опции для выбора индексации упоминавшихся офисных расширений, а также блокировка поиска по нежелательным словам. Следует отметить уникальную функцию создания смешанных совместных поисков для нескольких сайтов посредством Search groups (раздел Indexing), что существенно расширяет возможности поискового скрипта.

При тестировании Gold-версии на сайте с динамическим контентом придраться было не к чему: спайдер показал очень достойные результаты, не испугавшись работы с сессиями, нескольких переменных и параметров в предлагаемых URL. Причем Site Search Pro Gold с легкостью щелкал страницы PHP, CGI, ASP, ASPX, NET и CFM. Другими словами, мы так и не смогли найти веб-ресурсы, которые бы не проиндексировались скриптовым пауком. Более того, как оказалось, для индексации приватных участков сайтов разработчики исхитрились придумать функцию “.htaccess protection”, не имеющую аналогов у конкурентов.

Фактически Site Search Pro Gold является платформонезависимым, а наличие версий PHP/MySQL, ASP/MSSQL и ASP/ACCESS максимально расширяет сферу применения данного продукта. Увы, демо-версия линейки Site Search Pro доступна только онлайн – никаких усеченных вариаций для загрузки. Если же вы панически боитесь таких форм знакомства с продуктом, рекомендуем абсолютно бесплатный поисковый скрипт от Сергея Тарасова.

RISEARCH SQL

risearch.org/rus/sql/index.html
Этот движок написан на языке PERL и в отличие от предыдущего поисковика не требует внешней базы данных – проиндексированный контент будет храниться в директории скрипта. Как и Site Search Pro, он индексирует весь контент сайта, а размер созданных баз абсолютно не влияет на скорость работы RiSearch SQL. Оптимальный вариант применения – малые и средние сайты, содержащие порядка 1000 файлов совокупным объемом 10-20 Мб. Другими словами – большинство любительских страниц и ресурсы небольших компаний (разработчик заявляет, что RiSearch SQL в состоянии осилить гораздо больший объем контента). Поскольку кроме самого PERL данный скрипт не использует ничего, этот “следопыт” без проблем поселится на любом сервере с поддержкой протокола CGI (Common Gateway Interface).

За бесплатное содержимое движка придется-таки заплатить самостоятельной конфигурацией некоторых файлов скриптов в системном Блокноте. Дистрибутив содержит: индексирующий скрипт Index.pl, поисковый скрипт Search.pl, файл конфигурации Config.pl, скрипт анализа статистики запросов Stat.pl, add.pl, скрипт для добавления новой страницы Add.pl, Tables.pl (скрипт создания базы данных), spider.pl (скрипт для индексации по протоколу HTTP) и шаблон страницы для вывода результатов поиска Template.htm. Помимо этого имеются папка Log и файл Stoplist.ru, содержащий список слов, по которым не будет производиться запрос. Сразу скажем, что файл Spider.pl в большинстве случаев интереса не представляет и подлежит забвению.

Подробнее о Spider.pl
Как известно, еще одним методом индексации является использование протокола HTTP. При запуске скрипта Spider.pl этот “паук” начнет загружать страницы с вашего сервера, одновременно анализируя все ссылки до тех пор, пока не проиндексируется весь ресурс. Такой механизм крайне желателен для индексации динамических сайтов. Но, увы, такой “паук” не имеет больших возможностей и предназначен для работы только с одним сайтом. Еще одно ограничение: мы не сможем остановить процесс индексации и затем возобновить его с того же места – необходимо индексировать весь сайт сразу (ко всему прочему скрипту Spider.pl для полноценной работы необходим “заумный” модуль LWP).

“Ручная” настройка RiSearch SQL несложна: потребуется изменить значения нескольких параметров в файле конфигурации и проверить одну строку во всех файлах скрипта. Первым делом откроем Config.pl в Блокноте и найдем раздел Database parameters, где следует исправить параметры доступа к базе данных MySQL: $DBSERVER, $DATABASE, $USERNAME и $PASSWORD (понадобятся те же данные, что и при настройке Site Search Pro). Если вы затрудняетесь с точным значением переменной $base_dir (по умолчанию это “.”), обратитесь к хостеру. А с корректировкой значения “http://www.server.com/” переменной “$base_url” проблем быть не должно: прописывайте свой родной URL. Если вы не используете Spider.pl, оставьте в покое переменные секции “These variables are used by spider”, равно как и дальнейшие значения – скрипт, за исключением упоминавшихся параметров, по умолчанию настроен на оптимальную работу.

Теперь осталось проверить первую строку во всех скриптах. Здесь нужно указать путь к интерпретатору PERL на вашем сервере – как правило, это #!/usr/bin/perl (владелец хостинга обязательно предоставляет такую информацию) – и можно приступать к загрузке файлов скрипта в каталог “cgi-bin” сервера. Не забываем об обязательной проверке режима загрузки файлов “Transfer Type” в своем FTP-клиенте – только “ASCII”, иначе гарантированно получите страницу с извещением “Internal Error” (о причинах выбора ASCII-режима мы уже рассказывали в #8 (20) 2005 г). Осталось всего ничего: на сервере установим атрибуты файлов/директорий “755” для всех PL-файлов и “777” для каталога Log и запустим процесс индексации. В браузере набираем адрес www.ваш_сайт.ru/cgi-bin/index.pl, и после нескольких секунд работы индексирующего скрипта поисковый движок готов к приему любознательных посетителей.

Разумеется, дизайн шаблона далек от совершенства. По этой причине есть смысл скопировать HTML-код поисковой формы из этой заготовки в удобное место страниц веб-ресурса, после чего отредактировать Template.htm для приведения его к единому визуальному стилю своего сайта.
Казалось бы, о чем еще можно мечтать. Но владельцы сайтов на всевозможных “народных” хостингах тоже люди, а стало быть, тоже имеют право на поисковый движок. Использовать бесплатные наработки от того же “Яндекса” считается дурным тоном – результаты поиска по сайту откроются в фирменной странице глобального поисковика. Но даже в этом вроде бы безнадежном случае выход есть: поисковый движок на базе JavaScript, поскольку абсолютно все хост-площадки поддерживают этот язык.

Search Engine Builder Standard

www.aleadsoft.com
Мы уверены, что этот продукт окажется более чем востребованным, поскольку он чрезвычайно прост в работе благодаря локализованному интерфейсу (меню View > Language) и самостоятельно генерирует всего лишь три файла поискового движка: страницу поиска Search.html и два Java-скрипта – Searchfunc.js и Webdata.js. Последний скрипт и будет содержать проиндексированный контент веб-ресурса. При первом запуске Search Engine Builder автоматически создается проект с умолчальным именем “website 1”. На вкладке “Файл” задается индексация как веб-сайтов, так и локальных папок жесткого диска, однако в последнем случае придется указать полный адрес ресурса (например, http://www.мой_сайт.ru).

Набившая оскомину проблема с отображением русскоязычных запросов нам не грозит: вкладка “Скрипт” содержит выпадающий список “Кодировка”, где предлагается масса кодировок веб-страниц, включая Windows-1251. Обратите особое внимание на вкладку “Индексировать” – именно здесь расположены самые важные параметры будущей индексации. По умолчанию включена индексация огромного количества форматов, включая офисные (DOC, PDF, XLS, PPT, RTF, TXT, CPP) и мультимедийные (MP3, RM, WMV, MPG, MIDI, wav, AVI, ASF, GIF, JPG, BMP, ICO). И если поиск среди “бюрократических” форматов может быть полезен, то индексация музыки с графикой на бесплатном хостинге, по нашему мнению, не актуальна. При желании Search Engine Builder может “закрыть глаза” на файлы и папки, индексация которых не нужна (меню кнопки “Добавить”).

Если вы не хотите создавать скрипт размером в несколько мегабайт, обратитесь к дополнительным настройкам – кнопка “Больше” > “Индексировать” > вкладка “Ограничения”, где по умолчанию включена опция индексации всего содержимого страниц, включая сотни килобайт различной бесполезной “лирики”. Не жадничайте и включите индексацию только по ключевым словам и описанию (мудрый веб-мастер давно озаботился созданием метатэгов Keywords и Description). Безусловное преимущество Search Engine Builder в том, что индексация ключевых слов работает отменно, чего нельзя сказать об аналогичных программах (см. врезку).

Если вы хотите создать поисковую страницу с функцией расширенного поиска (Advanced), позволяющей задать поиск по ключевым словам, названию файла и другим параметрам, переходите на вкладку “Шаблон” и посредством кнопки обзора выбирайте нужное (эти шаблоны расположены в одноименных папках программного каталога Program Files\Search Engine Builder Standard\Template\JS). К слову сказать, если ваш ресурс имеет фреймовую структуру, найдется заготовка и для такого варианта.

Еще одна группа важных параметров ждет нас на вкладке “Поиск”. Мы советуем выбрать поиск по ключевым словам веб-страниц: секция “Параметры поиска” > список “Поиск” > “Ключевые слова”. Список исключений будет востребован при индексации всего контента и по умолчанию представлен исключительно англоязычными словами, но при желании его можно без проблем пополнить русскими словоформами.

Начинающий веб-дизайнер сможет вдоволь потешиться на вкладке “Результат” – здесь есть выбор отображения результатов поиска (в новом окне или в новом фрейме), форматирование текста страницы поиска и масса других “вкусностей”, скрывающихся за кнопкой “Подробно”. И, разумеется, следует указать программе путь для сохранения будущих файлов движка – по умолчанию это каталог Program Files\Search Engine Builder Standard\Output.

Как уже говорилось, освоить приложение очень просто: индексация контента запускается одноименной кнопкой, после чего приходит очередь кнопки “Создать поисковик”. В итоге в заранее выбранной папке окажутся долгожданные файлы поискового движка, причем готовый результат можно протестировать тут же, не закрывая программу – кнопка “Запустить”.

Благодарность: Благодарим Алексея Краковского (компания Shedix, www.shedix.com) за предоставленные продукты линейки Site Search Pro 2.0.

Search Maker Pro 3.2
www.searchmakerpro.com
Главным преимуществом этой программы является “выходной продукт” в виде единственной HTML-страницы (по умолчанию – search.html), содержащей форму для ввода запроса. В код создаваемой страницы вшит Java-скрипт, он же проиндексированный контент ресурса. Образцы работы поискового движка можно посмотреть на www.searchmakerpro.com/examples.html. Процесс создания поискового механизма представляет собой всего несколько последовательных шагов.

Разработчики предусмотрели несколько методов снижения размера поискового скрипта, например удаление коротких слов (Remove Small Words). Более того, опция Remove Stop Words from Stop List дает возможность пополнить черный список массой ненужных слов (они будут удалены из скрипта). Можно самым жестким образом ограничить размер проиндексированного контента (Specify Maximum Size of Search Engine). Но есть один недостаток: программа, несмотря на заявленную возможность индексации по ключевым словам, самым наглым образом это дело игнорирует, и в конечном итоге приходится дублировать ключевые слова в метатэге Description.

Упорная кириллица
Иногда после установки и конфигурации поискового движка возникает проблема с корректным выводом результатов русскоязычного запроса. При тестировании “золотой” версии Site Search Pro на одной из хост-площадок скрипт выдавал информацию исключительно в кодировке KOI8, невзирая на выбор кодировки 1251 в настройках движка. Разработчики высказали мысль, что хостер не установил библиотеку “PHP iconv”, входящую в стандартную поставку PHP (порой админы ее не ставят). Однако представители хост-фирмы выразили столь бурное возмущение (дескать, не лаптем щи хлебаем), что пришлось искать другие причины. В итоге решить проблему так и не удалось.

Примерно та же история произошла с PHP-версией движка RiSearch: скрипт либо удалял первую букву русскоязычного запроса, что, разумеется, приводило к отрицательному результату поиска, либо вообще не реагировал на великий и могучий. Причем, судя по отзывам пользователей этой вариации движка, проблема с кириллицей возникала не только у нас. Все мыслимые варианты исправления казуса тоже не привели к успеху. Более подробно об этом здесь: risearch.org/cgi-bin/forum/forum.cgi/1/335.htm.