Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

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