
RiSearch - замути свой поиск
Алексей Б. Беляев aka Alexys
Спецвыпуск Xakep, номер #028, стр. 028-032-1
(alex-sun@mtu.ru)
Помнишь ли свое первое появление в инете? Наверняка знал пару-тройку адресов любимых групп, теле- и радиоканалов и, может быть, www.xakep.ru. Но все равно не знал, куда тебе сунуться, чтобы найти реферат или скачать свеженькую софтину и крэк к ней. Единственным средством для узнавания, что и где лежит, были поисковые сайты. Но, даже зная нужные URL'и, не всегда легко найти нужный материал на сайте. Бывает, что горе-вебмастер сделал такую навигацию по информативному сайту, что там черт ногу сломает. А ведь хочется побыстрее все найти, ибо денежки на инетном эккаунте любят быстро исчезать. Ответ на вопрос о том, как бы пошустрее найти на сайте то, что тебе нужно, довольно однозначен - это поиск. Возможность устраивать поисковые запросы по сайту только поможет поднять его популярность, ибо пипл будет думать, что на таком-то сайте можно быстро все найти :).
Структура поисковиков
Если программишь под веб недавно, то следует узнать, как устроены поисковые движки. Допустим, объем твоего сайта без всякой графики и файла хотя бы метров 10 занимает. Прикинь, сколько ресурсов и времени будет занимать выдача ответа на запрос юзера. Поверь, не так уж мало. Поэтому вариант каждый раз отыскивать в куче файлов совпадений запроса и текста - не выход. Намного быстрее поиск будет проходить по одному файлу (хотя для таких монстров, как Yandex.ru и ему подобных, даже это не поможет - самому интересно, как у них все устроено :)). Поэтому поисковый движок должен состоять из двух частей - индексатора и искателя. В задачи индексатора входит пробежка по контенту сайта и создание базы данных (не бойся, SQL тут не требуется), в полях которых в простейшем варианте поиска содержатся ключевые слова и адреса или имена страниц, где они были найдены.
url1;;keywords1
url2;;keywords2
...
urln;;keywordsn
Работа индексатора жрет много ресурсов, а время работы зависит от мощности сервака, от объема базы и оптимальности кода. В такие моменты может даже притормаживать работа сайта, ибо загруженный сервак не успевает все быстро обрабатывать. Поэтому такие скрипты запускают по мере обновления инфы на сайте. Скрипт-искатель должен после получения запроса от юзера пробежаться по базе с ключевыми словами, выбрать и выдать нужное.
Самое легкое дело в создании поиска - сделать его внешний вид, который представляет собой обычную форму для ввода текста и кнопку отправки. Главное, чтобы поисковый скрипт обрабатывал как строку запроса то, что было введено.
<FORM>
Строка поиска
<INPUT name="keywords" value="Ля фам">
<INPUT type="submit" name="query" value="Шерше">
</FORM>
Покупать, писать или поискать?
Скажу сразу, что написать самому реальный поисковый движок - задача не из легких, с которой могут справиться только те, кто программит уже не один месяц, а может и год. А если хочется поиск по сайту сделать сейчас? Тогда надо будет поюзать чужие скрипты, немного закастомайзив их под свои нужды и структуру своего хоста. Большие поисковые системы стоят хороших денег, которые тебе наверно даже не снились. Но ведь будет глупо вешать на 10-мегабайтный сайт 1000-баксовые скрипты. И не надо. Благо, есть программеры, которые помогают не настолько продвинутым собратьям и выкладывают свои скрипты на халяву (причем, это не только к поисковым движкам относится).
Содержание Вперед на стр. 028-032-2









































































