Принцип работы всех поисковых систем!

вторник, 1 января 2013 г.



Сегодня мы с Вами поговорим о поисковых системах. Зачем нам, как SEO оптимизаторам, это нужно? Зная основные принципы работы поисковых систем, мы с вами будем иметь представление того как именно происходит поиск сайтов по определенным запросам, как производится оценка качества сайта, его релевантность к поисковому запросу и его ранжирование в поисковой выдаче. Данные знания нам помогут в дальнейшем правильно оптимизировать сайты под поисковые системы. 
Для начала хочу указать одну вводную которую используют поисковые системы и которой будем пользоваться и мы с Вами сегодня на нашем уроке:
1. Документ - это интернет страничка! Имеющая уникальный адрес, так называемый url.
Поисковые системы - привыкли считать интернет странички документами которые имеют какое то содержимое. Допустим Вы создали интернет страничку о Себе! Данная страничка у Вас одна, для поисковой системы - это один документ. Если у Вас на сайте несколько страничек, то для поисковой системы - это несколько документов. Вот такая вот небольшая вводная, а теперь продолжим.
Начнем пожалуй с определения: Что такое поисковая система? По Wiki это программно-аппаратный комплекс с веб-интерфейсом! А по сути и чтоб было более понятней - это огромная база данных. Каким образом собираются эти данные мы поговорим немного позже. Эти данные определенным образом обрабатываются.
Алгоритмы поисковых систем: 
У поисковых систем есть несколько алгоритмов по которым они работают. Самый первый и самый старый алгоритм - это алгоритм прямого поиска.
Как работает алгоритм прямого поиска?
Допустим мы купили газету с объявлениями. Нас интересует рубрика "Продажа машин". Смотрим на первую страницу данной газеты и не видим данной рубрики. Наши действия! - Мы переворачиваем страничку газеты и смотрим на следующей страничке. Перелистав несколько страничек мы находим нужную нам рубрику о продаже машин. Поиск завершен.
Отсюда можно сказать что последовательный перебор, всех имеющихся документов (рубрик и объявлений в газете) - это и есть алгоритм прямого поиска. И это все хорошо работает пока мы не столкнемся с чем то огромным. К примеру какой ни будь энциклопедией. Просмотрев сотню страниц мы поймем что алгоритм прямого поиска - это не совсем то что нам нужно.
Выводы: Поиск при помощи данного алгоритма нам дает достоверную на 100% информацию (рубрика о продаже машин), но в больших масштабах он не применим так как поиск информации занимает большое количество времени.
Второй алгоритм - это алгоритм инвертированных индексов. Данный алгоритм используется по сей день всеми известными нам поисковыми системами.
Yandex, Rambler, Google, yahoo и т.д. работают именно по этому алгоритму.
Что такое инвертированный (обратный) индекс - это текстовый файл, содержащий список слов документа отсортированный в алфавитном порядке с указанием позиций и других параметров вхождения этих слов в документ.
Что это значит? Мы взяли документ, выписали все слова этого документа, отсортировали в алфавитном порядке и рядом, с этими словами, указали координаты где данные слова встречаются в этом документе. Поисковые системы в обратных индексах кроме координат могут хранить и другие параметры, какие это параметры мы не знаем. Но давайте запомним что координаты на все 100% там есть.
Преимущество использования данного алгоритма - это быстродействие! Так как поиск осуществляется не в самом документе (в интернет страничках) а вот в таких текстовых файлах.
Недостаток такого алгоритма в том что происходит некое искажение информации, так сказать потеря информации.
Есть еще несколько алгоритмов поиска - но они мало используются и зачастую в целях эксперимента. Мы их рассматривать не будем.
Пример использования обратных индексов в жизни мы могли с Вами встречать в научной литературе, а именно хороший пример обратного индекса это алфавитно-предметный указатель. Сейчас давайте попробуем составить обратный индекс для этой статьи:
Итак первое слово в статье - это слово Сегодня вот и запишем его:

Сегодня (1,1,1); (2,1,16); (15,1,7); ...
мы (1,1,2); (1,1,20); (2,1,20); ...
Вами (1,1,3);(1,1,21); (2,1,21);(14,1,8); ...

Теперь давайте я Вам расшифрую - что же это за цифры: 
Сегодня (1,1,1); (2,1,16); (15,1,7)
1.(1) - Первый абзац,
2.(1) - Первая строка,
3.(1) - Первое слово.
Последующие скобки обозначают что слово "Сегодня" еще встречается в данной статье несколько раз и его можно встретить по таким вот координатам (2,1,16); (15,1,7) ну и так далее. Вот таким вот образом, мы перечисляем все слова в данном документе, сортируем полученный нами список в алфавитном порядке - это и будет обратный индекс.
По сути это то что хранят поисковые системы в зашифрованном виде у себя на серверах. И в этом вся хитрость поисковых систем!
Когда пользователь вводит запрос, поисковая система не ищет в интернете, она ищет в обратных индексах на собственных серверах в вот таких вот текстовых файлах.

Это все хорошо работает пока поисковая система не стала большой (это где то от 100 млн. документов). Когда документов становиться много необходима какая то математическая модель обработки данных документов.
Существует всего три типа математических моделей используемых в поисковых системах.
1. Булевская математическая модель.
2. Векторная математическая модель.
3. Вероятностная математическая модель.