RiSearch - замути свой поиск Алексей Б. Беляев aka Alexys Спецвыпуск Xakep, номер #028, стр. 028-032-3 template.htm - шаблонная страница для выдачи результатов поиска; searchbox - вариант поисковой формы. Зная, что зачем, можно переходить к отдельным элементам. Начало тюнинга движка начинается с конфиг-файла - config.pl. Настройка config.pl Как уже было сказано выше, здесь хранятся все настройки движка и сервака, к которому надо приклепать поиск. На описание всех переменных понадобится не одна статья, так что придется ограничиться наиболее важными, которые отличаются от дефолтных. Тем более, в тексте config.pl содержится достаточное число комментов (правда, на инглише), так что не составит проблем разобраться, какая переменная за что отвечает. $base_dir="../html" #путь к папке, файлы которой надо проиндексировать $base_url="http://winfo/" #адрес стартовой страницы Следующие переменные нужны только для тех случаев, когда будет использоваться spider.pl. О них немного ниже. $file_ext = 'html txt htm shtml'; #расширения файлов, которые будут индексироваться $no_index_files = 'robots.txt index.txt'; #файлы, которые надо скрыть от посторонних глаз $use_selective_indexing = "YES"; #включается возможность опускания при индексировании строк #метки начала и конца мест, которые индексировать не надо %no_index_strings = ( q[<!--] => q[<-->], ); # метод отыскания совпадений в базе ключевых слов # 1 - по целому слову # 2 - по началу слова # 3 - по строке $INDEXING_SCHEME = 2; # из-за наличия падежей в русском языке предпочтительнее 2-ой метод $res_num=10; #количество результатов поиска, выводимых на одной странице. Вот и все, что было необходимо поправить в файле config.pl. Поскольку было решено пользоваться индексатором index.pl, то теперь надо и его до ума довести. Доведение до ума index.pl Скрипт index.pl вносит в базу адрес файла, который индексирует. Затем, после обработки запроса юзера, будет выдаваться ответ в виде "http://winfo/arts/diskandcache.txt". Если бы это были готовые html-страницы или просто текст (без картинок и прочего), то было бы достаточно. Но ведь твои текстовые файлы обрабатывает скрипт - перед тем как выдать в результате нормальные разметанные страницы с картинками и комментариями к ним (см. прошлый номер СПЕЦа). В таком случае надо просто немного довести до ума скрипт index.pl. В свое время самому пришлось раздумывать над тем, что можно сделать. И придумал вот что. Как оказалось, index.pl заносит в файл "0_finfo" через 2 двоеточия (::) следующее: адрес::размер::заголовок (для html-страниц)::краткое описание. Это можно понять из строки "print FINFO $url,"::",$size,"::",$TITLE,"::",$descript,"\n";", которая как раз отвечает за запись в файл keyword'ов. Так как все заносимое может пригодиться, а проблема только в адресе, то надо только ее и решить. Благо перл могуч регулярными выражениями, так что преобразовать адрес текста во что-то ему подобное, но немного отличающееся не составит труда. Если, к примеру, надо выдать результат запроса в виде "http://winfo/cgi-bin/arts.pl?art=somename&act=read" (см. СПЕЦ №2), то перед строкой "print FINFO $url,...." надо провести пару операций над $url, а еще лучше добавить еще одну переменную, которая и будет заноситься в БД. Положим, что все файлы, которые надо проиндексировать, находятся в папке "../html/arts/". Одним из адресов документов является "$url=http://winfo/arts/diskandcache.txt", т.е. путь к местоположению файла на хосте. При вводе в адресной строке этого адреса откроется в броузере текстовый файл. Вот этот адрес надо преобразовать. |