Ходим, ходим – контент находим
20 января 2010
Рубрика: Интернет и сети.
Автор: Артем Пулявин.

Я думаю, многие задумывались об оптимизации своих сайтов (если таковые есть). Читали массу инструкций, как и когда это следует делать, с чего необходимо начать и когда это должно закончиться. Но, как же можно задумываться об оптимизации, если нет фундаментальных знаний о том, как вообще работает зверь, под которого вы хотите подстраивать свой сайт? Как работает поисковая машина?

Пролистав подшивку прошлых версий журнала InfoCOM.UZ – я понял, что никто ранее эту тему не поднимал (по крайней мере, мой поиск не дал никаких результатов). Я решил стать первопроходцем в данной теме и написать свою статью о работе поисковых систем. Тех, кто считает себя “гуру веба” эту статью может не читать, так как нового он в ней ничего не узнает, если только мои личные выводы, доводы и практическую сторону разбора вопроса, а также проблемы, с которыми я столкнулся при разработке своей индексирующей машины.

На текущий момент существует масса поисковых машин, создают их компании, воодушевлённые нулями, которые видят в суммах заработков тех или иных популярных поисковых машин, считая, что они не хуже и, если они запустят свой поисковик, то сумму, увиденную без пары-тройки нулей они запросто смогут заработать. Также поисковые машины пишут обычные студенты — кто-то ради банального исследования, или для проверки своих сил, знаний и возможностей, а кто-то, взяв за основу историю про Грина и Пейджа (основатели Google). Так вот, поисковиков много, но смысл работы всех практически одинаковый. Безусловно – кто-то внедряет свои системы ранжирования, фильтрации данных, индексации, но, как ни крути, модельный каркас того или иного поисковика один.

Всё начинается с индексирования, ведь как можно выдавать какие-то результаты выдачи без наличия данных в этой выдаче, т.е. сайтов.

Индексация – начальный этап работы поисковой машины. В работу запускаются два поисковых бота “Spider” и “Crawler”.

Spider – браузероподобная программа цель которой ходить по ссылкам, предоставленными ботом “Crawler”. Т.е. эта программа ходит по страницам сайтов и забирает их HTML-код.

Сrawler – бот, взаимодействующий со спайдером, но в отличие от паука – его основная цель – ссылки. Т.е., пока спайдер забирает контент, кравлер находит в этом контенте ссылки на другие страницы. Т.е. он является неким штурманом для спайдера.

Многие говорят, что боты “лазают” по страницам, а, накопив какой-то лимит данных, возвращаются в поисковую систему и сохраняют в ней свои накопленные данные. Сам процесс “лазания” – абстрактен. Т.е. никто никуда не уходит, и потом не возвращается. Вся работа идёт с серверов поисковой машины и идёт постоянное сохранение данных.

Сохраняет, сохраняет… А куда же сохраняются полученные данные? Конечно же, в базу данных. А вот тут самое интересное. Многие люди, которые бы просто описывали работу поисковых систем, начали бы разговор о простых базах данных, которые находятся в обиходе и доступны для простых смертных. А-ля семейство SQL и тот же mySql или даже, хоть немножко подумав, скажут Oracle. Но, уважаемые читатели, давайте подумаем все вместе: какая из доступных, как фриваре, так и платных баз даст возможность хранить в себе данные на миллиарды строк, а тем более даст быстрый доступ как к их считыванию, редактированию и прочей работы с ними? Ответ- никакая. Год назад я общался с главным разработчиком поисковой системы Voydod и, как оказалось, мы оба столкнулись с одной и той же проблемой – база, в которой хранились страницы сайтов в размере до 1.000.000 штук более-менее функционировали нормально, но потом … их работа оставляла желать лучшего.

Вообще, разработка любой поисковой системы – это огромная работа, которая включает в себя не только написание того, что было задумано, но и придумывание этого задуманного. Это большая работа, требующая больших знаний в разных науках и не только в математике. Знания структуры веба, системного администрирования (распределения нагрузки на множество серверов и т.д.), умение изначально рассчитывать проблемы, с которыми суждено столкнуться при работе. Кто-то изначально продумывает всё (вернее большинство “всего”, “всё” продумать, к сожалению, невозможно), как это сделал Google, кто-то просто набросал поисковик, а потом яростно клепает к нему фильтры, которые путаются между собой и нормальный сайт для людей попадает под тысячу фильтров и вылетает из индекса, как это наблюдается у Яндекса.

Ладно, давайте прервём лирические отступления, и вернёмся к базам данных. Безусловно – каждый большой и давно работающий поисковик уже разработал свою базу данных, ту, которая, как им кажется, будет обеспечивать наибольшую скорость доступа к данным, ту, работа с которой не будет вызывать трудностей в перераспределении нагрузки. Так, например, Google разработал уникальную многомерную базу данных, данные в которых хранятся в нескольких плоскостях таблицы.

После того, как HTML-код страницы забран, все ссылки с этой странице извлечены и сам HTML-код страницы сохранён в базе данных, в ход запускается “ Indexer” (индексатор) – об этой программе можно говорить и говорить, так как, опять-таки каждая поисковая машина реализует это программу по-своему, но основоположных моментов не отнять. Итак, индексер анализирует контент, который был взят пауками с той или иной страницы, и выявляет из него основные данные, которые и нужны поисковой машине для выдачи.

Вот основные моменты, которые анализирует индексер любой поисковой машины:

1. Title или же заголовок страницы сайта. Заголовок сайта – одно из самых значимых моментов во время формирования результатов выдачи. Индексатор анализирует ключевые слова, которые фигурирую в заголовке.

2. Разметка HTML-кода. Индексатор анализирует данные, которые находятся в таких HTML-тегах, как b, i, u, h1-h4. Индексатор анализирует: есть ли в тексте размеченные ключевые слова, которые были замечены в заголовке страницы.
3. Сам контент страницы, а точнее его плотность. Какова плотность тех ключевых слов контента, которые фигурируют в заголовке страницы.

4. Ссылки страницы. Как внутренние ссылки страницы, которые ссылаются на страницы других сайтов, так и на внутренние страницы самого сайта. А также ссылки со страниц других сайтов на текущую страницу.

5. Данные в META-тегах. Опять-таки, что бы другие не говорили, но некоторые поисковики до сих пор учитывают данные, которые находятся в META KeyWords и META Description.

С недавнего времени, в учёт анализа данных был включён также URL страницы, т.е. есть ли ключевые слова в самом домене, а так же и в названии страницы этого домена.

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

Всё, на этом труд рабочей части поисковика закончен. Свою работу выполнили 4 из 5 компонентов поисковой машины. Остался один – самый главный.

Хотя, скорее всего нельзя говорить, что вот этот компонент поисковой машины важнее другого, в этой компоненте можно допустить недочёт и всё равно работа поисковика будет успешной. Нет. Каждый компонент, по- своему, важен на своём этапе работы. А их совместная работы – и есть поисковик. Ведь, согласитесь, если не правильно будет проанализирован контент страницы или же сохранён не верно – это даст накладки на всю работу поисковика, где-то будут выдаваться не релеватные запросы, где-то ответ сервера будет ужасно долгим, если вообще не отказ от работы.

Так вот, последним компонентом работы поисковой машины является выдача (Search Engine Results) – это непосредственно общение пользователя с поисковой машиной. Пользователь задаёт вопрос поисковой машине, а она же выдаёт ему релевантную выдачу, согласно его запросу. Расстановка сайтов по местам в поисковой системе называется «серпом» (SERP от англ. Search Engine Result Position). Сайты в поисковой машине выстраиваются по релевантности запроса пользователя. А это релевантность и есть данные, которые выдал при анализе странице индексер.

О самом процессе выдачи можно говорить сутками. То, как проходит формирование самой выдачи – достаточно сложный процесс, в котором оперируют многочисленные математические формулы, морфоанализаторы, параметры страницы и самого сайта в целом.

Конечно же, идеального ничего нет, и поисковые машины содержат многочисленные недочёты, которыми пользуются оптимизаторы сайтов (СЕОшники) для поднятия сайтов на высокие позиции по тем или иным запросам, но это уже совсем другая тема, о которой мы поговорим в следующей статье.

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

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В Одноклассники
ВКонтакте