ZipZip03

+79085918716

Из чего состоит поисковая система (урок №1)

Архитектура поисковых систем

Архитектура поисковых систем Яндекс

Архитектура ответа на вопрос

Каждый день пользователи задают Яндексу десятки миллионов запросов, и поисковая система должна не только точно отвечать, но и быстро обрабатывать весь этот поток. Для этого Яндекс использует заранее подготовленные данные — индекс.

Безусловно, поиск с помощью индекса ускоряет процесс ответа пользователю, как, например, предметный указатель в книге помогает быстрее найти нужное слово. Но размеры самого «предметного указателя» в поиске — огромны. Чтобы обрабатывать такие объемы данных и делать это быстро, Яндекс использует тысячи серверов. Сервера объединены в кластеры и даже в кластеры кластеров.

Архитектура поисковых систем - яндекс

Все пользовательские запросы сначала попадают в компьютерную систему «метапоиск» (рис. 1).

«Метапоиск» обрабатывает каждый запрос в реальном времени — выясняет все необходимые данные про запрос (из какого региона он был задан, к какому классу относится и т.п.), проводит лингвистическую обработку. Затем метапоиск проверяет, формировались ли в последнее время результаты поиска для этого запроса. Результаты поиска по часто задаваемым запросам некоторое время хранятся в памяти метапоиска, а не формируются каждый раз заново. И если вновь пришедший запрос оказался популярным, метапоиск покажет пользователю заранее сохраненные результаты.

Если же ответа в памяти нет, то метапоиск передаёт запрос на сервера другой компьютерной системы — «базового поиска» (рис. 1).

На базовом поиске хранится слепок интернета, по которому ищет Яндекс, — поисковая база. Она разбита на части, которые хранятся на разных серверах — искать ответ одновременно по нескольким частям базы данных быстрее, чем по всей базе целиком. Кроме того, у каждого сервера есть несколько копий. Это позволяет распределять нагрузку и не терять данные — если один из серверов не сможет своевременно ответить, информация всё равно найдется на дублирующих серверах. Из тысяч серверов базового поиска метапоиск выбирает наименее загруженные – таким образом, чтобы вместе они содержали целую поисковую базу.

Каждый из серверов отдаёт список документов, в которых есть слова из запроса, обратно в метапоиск. Там они объединяются, ранжируются с помощью технологии Матрикснет и попадают на страницу результатов поиска (рис. 1).

Благодаря такой организации поиск Яндекса может отвечать пользователю за доли секунды.

Индексирование интернета

Понятие индекса

Поисковая машина Яндекса отвечает на вопросы пользователей, находя нужные документы в интернете. А размеры современного интернета исчисляются в экзабайтах, то есть в миллиардах миллиардов байтов. Конечно же, Яндекс не обходит весь интернет каждый раз, когда ему задают вопрос. Поисковая система, так сказать, делает домашнее задание.

Яндекс ищет по поисковому индексу — базе данных, где для всех слов, которые есть на известных поиску сайтах, указано их местонахождение — адрес страницы и место на ней. Индекс можно сравнить с предметным указателем в книге или адресным справочником. В отличие от обычного предметного указателя, индекс содержит не только термины, а вообще все слова. А в отличие от адресного справочника, у каждого слова-адресата есть не одно, а очень много «мест прописки».

Подготовка к ответам

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

У Яндекса два поисковых робота — основной и быстрый (он называется Orange). Основной робот индексирует интернет в целом, а Orange отвечает за то, чтобы в поиске можно было найти самые свежие документы, которые появились минуты или даже секунды назад. У каждого робота есть список адресов документов, которые нужно проиндексировать.

Когда при обходе робот видит на уже известных сайтах новые ссылки, он добавляет их в свой список, увеличивая количество индексируемых страниц. Впрочем, владелец сайта сам может помочь основному роботу Яндекса найти свой ресурс и подсказать, например, как часто обновляются его страницы — через сервис Яндекс.Вебмастер.

Сначала программа-планировщик выстраивает маршрут — очередность обхода документов. При этом планировщик учитывает важные для поисковой системы характеристики сайтов, такие как, например, цитируемость или частота обновления документов. После создания маршрута планировщик отдаёт его другой части поискового робота — «пауку». Паук регулярно обходит документы по заданному маршруту. Если сайт на месте, то есть работает и доступен, паук выкачивает запланированные в маршруте документы. Он определяет тип скачанного документа (html, pdf, swf и т.п.), кодировку и язык, а затем отправляет данные в хранилище.

Там программа разбирает документ по кирпичику: очищает от html-разметки, оставляя чистый текст, выделяет данные о местоположении каждого слова и добавляет их в индекс. Сам документ в исходном виде также остается в хранилище до следующего обхода. Благодаря этому пользователи могут найти в Яндексе и посмотреть документы, даже если сайт временно недоступен. Если сайт закрылся или документ был удалён или обновлён, Яндекс удалит копию со своих серверов или заменит её на новую.

Поисковая база

Поисковый индекс, данные о типе документов, кодировке, языке и сохраненные копии документов вместе составляют поисковую базу. Она обновляется постоянно, но, чтобы это обновление стало доступно пользователям, её нужно перенести на «базовый поиск». Базовый поиск — сервера, которые отвечают пользователям на запросы. Туда переносится не вся поисковая база, а только её полезная часть — без спама, дубликатов сайтов (зеркал) и других ненужных документов.

Обновление поисковой базы из хранилища основного робота попадает в поиск «пакетами» — раз в несколько дней. Этот процесс создаёт дополнительную нагрузку на сервера, поэтому производится ночью, когда к Яндексу обращаются на порядок меньше пользователей. Сначала новые части базы помещаются рядом с такими же частями из прошлого обхода. Затем они проверяются по целому ряду факторов, чтобы обновление не ухудшило качество поиска. Если проверка прошла успешно, новая часть базы заменяет собой старую.

Робот Orange предназначен для поиска в реальном времени. Его планировщик и паук настроены так, чтобы находить новые документы и выбирать из огромного их количества все, хоть сколько-нибудь интересные.

Можно сказать, что поиск в интернете состоит из двух больших частей. Первая — когда Яндекс ищет различные документы в интернете и составляет поисковый индекс. Вторая — когда система ищет ответ на конкретный запрос пользователя в уже подготовленной поисковой базе.

Язык запросов

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

Оценка качества поиска

Яндекс стремится находить ответ на запрос пользователя, предоставляя на странице результатов информацию и ссылки на нее в интернете.  Следование рекомендациям Яндекса по созданию качественного сайта, поможет в индексировании и лучшем ранжировании ресурса, в то время как применение обманных техник может привести к понижению его позиций или исключению его из поиска.

Основные принципы качественного сайта (по мнению ПС Яндекс):

  •  Создавайте сайты с оригинальным контентом или сервисом. Реклама не является той ценностью, ради которой пользователи приходят на сайт.
  • Думайте о пользователях, а не о поисковых системах. Стали бы вы создавать сайт, страницу или ее элемент, если бы не существовало поисковиков? Приходят ли пользователи на ваш сайт или интернет-магазин не только из поисковых систем?
  • Ставьте только те ссылки, которые будут полезны и интересны пользователям вашего ресурса. Не ссылайтесь только потому, что вас попросили сослаться.
  • Тщательно продумайте дизайн — он должен помогать пользователям увидеть главную информацию, ради которой сайт создан.
  • Будьте честны. Привлечь пользователей по запросам, на которые ваш сайт не может достойно ответить, не значит удержать их. Думайте о том, что пользователь получит, придя на Ваш сайт.

Метрика pfound

 Имея ранжированную страницу с результатами поиска, где все URL оценены асессорами, ПС Яндекс оценивает качество поиска с помощью специальной метрики pfound. Она вычисляет вероятность того, что человек нашел то, что искал на странице выдачи, суммируя такие вероятности для разных URL — каждой из четырех оценок асессора присвоена своя вероятность полезности.

  где pRel — релевантность i-того документа (вероятность того, что пользователь найдет ответ в этом документе), pLook — вероятность просмотра i-того документа в выдаче.

При этом в ходе суммирования учитывается, что вероятность полезности этой строки нужно умножать на вероятность того, что ее вообще прочитают. То, что нужно пользователю, может найтись в предыдущей строчке, кроме того, он может просто устать и прекратить чтение списка. В общем, получается такая формула суммирования вероятностей, которая и позволяет нам оценивать качество поиска — как своего, так и конкурентов.

Колдунщики

На вопросы пользователей отвечает не только поиск по вебу, но и другие сервисы Яндекса. Например, Яндекс.Новости рассказывают, что сейчас происходит в мире, а Яндекс.Погода — при какой температуре и атмосферном давлении это всё в мире происходит. Яндекс ищет ответы на своих сервисах вместе с поиском по вебу и те из них, что хорошо отвечают на запрос, показывает прямо в результатах поиска. Такой поиск называется параллельным, а его результаты, которые появляются вместе с результатами веб-поиска — колдунщики.

Искать дополнительные ответы на своих сервисах Яндекс впервые стал в 2000 году, подключив к поиску ленту новостей и базу товаров интернет-магазинов.

Сейчас у Яндекса уже много сервисов, у которых могут быть ответы на один и тот же запрос. Например, по запросу [Стинг] помимо ссылок на веб-страницы о музыканте и его творчестве Яндекс также может предложить послушать его песни, которые есть на Яндекс.Музыке, посмотреть фото, найденные Яндекс.Картинками или видеоклипы, найденные Яндекс.Видео.

Колдунщики — это информационные блоки в результатах поиска с ответами от сервисов Яндекса.

Соответственно, на некоторые из запросов в результатах поиска может появляться несколько колдунщиков. Какие колдунщики и в каком порядке показывать — решает специальная система. Она состоит из пяти частей. Четыре из них выясняют, у какого из сервисов Яндекса может быть ответ на запрос. Они называются «кубики», по аналогии с детскими кубиками, где букве алфавита соответствует картинка. Пятая называется «решатель». Решатель «составляет слово» из кубиков — выбирает подходящие колдунщики и ранжирует их.

Роботы ПС Яндекс

Робот (англ. crawler) хранит список URL, которые он может проиндексировать, и регулярно выкачивает соответствующие им документы. Если при анализе документа робот обнаруживает новую ссылку, он добавляет ее в свой список. Таким образом, любой документ или сайт, на который есть ссылки, может быть найден роботом, а значит, и поиском Яндекса.

Какие бывают индексирующие роботы:

В Яндексе есть несколько видов роботов, которые выполняют разные функции. Например, есть робот, который индексирует rss-ленту для поиска по блогам. Или робот, который индексирует только картинки. Самый важный — основной индексирующий робот, функция которого — поиск и индексирование информации для формирования базы основного поиска.

В помощь основному есть быстрый робот — он предназначен для оперативного индексирования свежей, актуальной на данный момент информации. Если среди проиндексированных страниц своего сайта вы видите две копии какого-либо документа — скорее всего это означает, что помимо основного робота документ также был проиндексирован и быстрым роботом.

IP-адресов, с которых «приходят» роботы Яндекса, тоже много, и они часто меняются. Поэтому Яндекс не разглашает их список и не рекомендует использовать фильтрацию на их основе.

Роботы Яндекса:

  • Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)— основной индексирующий робот;
  • Mozilla/5.0 (compatible; YandexImages/3.0; +http://yandex.com/bots)— индексатор Яндекс.Картинок;
  • Mozilla/5.0 (compatible; YandexVideo/3.0; +http://yandex.com/bots)— индексатор Яндекс.Видео;
  • Mozilla/5.0 (compatible; YandexMedia/3.0; +http://yandex.com/bots)— робот, индексирующий мультимедийные данные;
  • Mozilla/5.0 (compatible; YandexBlogs/0.99; robot; +http://yandex.com/bots)— робот поиска по блогам, индексирующий комментарии постов;
  • Mozilla/5.0 (compatible; YandexFavicons/1.0; +http://yandex.com/bots)— робот, индексирующий пиктограммы сайтов (favicons);
  • Mozilla/5.0 (compatible; YandexWebmaster/2.0; +http://yandex.com/bots)— робот сервиса Яндекс.Вебмастер;
  • Mozilla/5.0 (compatible; YandexPagechecker/1.0; +http://yandex.com/bots)— робот, обращающийся к странице при валидации микроразметки через форму «Валидатор микроразметки»;
  • Mozilla/5.0 (compatible; YandexImageResizer/2.0; +http://yandex.com/bots)— робот мобильных сервисов;
  • Mozilla/5.0 (compatible; YandexDirect/3.0; +http://yandex.com/bots)— робот Яндекс.Директаособым образом интерпретируетtxt;
  • Mozilla/5.0 (compatible; YandexDirect/2.0; Dyatel; +http://yandex.com/bots)— «простукивалка» Яндекс.Директа, проверяет корректность ссылок из объявлений перед модерацией;
  • Mozilla/5.0 (compatible; YandexSitelinks; Dyatel; +http://yandex.com/bots)— «простукивалка» быстрых ссылок, используется для проверки доступности страниц, определившихся в качестве быстрых ссылок;
  • Mozilla/5.0 (compatible; YandexAdNet/1.0; +http://yandex.com/bots)— робот  Рекламной сети Яндекса;
  • Mozilla/5.0 (compatible; YandexMetrika/2.0; +http://yandex.com/bots)— робот Яндекс.Метрики;
  • Mozilla/5.0 (compatible; YandexNews/3.0; +http://yandex.com/bots)— робот Яндекс.Новостей;
  • Mozilla/5.0 (compatible; YandexNewslinks; +http://yandex.com/bots)— «простукивалка» Яндекс.Новостей, используется для проверки ссылок из новостных материалов;
  • Mozilla/5.0 (compatible; YandexCatalog/3.0; +http://yandex.com/bots)— «простукивалка» Яндекс.Каталога, используется для временного снятие с публикации недоступных сайтов в Каталоге;
  • Mozilla/5.0 (compatible; YandexAntivirus/2.0; +http://yandex.com/bots)— антивирусный робот, который проверяет страницы на наличие опасного кода;
  • Mozilla/5.0 (compatible; YandexZakladki/3.0; +http://yandex.com/bots)— «простукивалка» Яндекс.Закладок, используется для проверки доступности страниц, добавленных в закладки;
  • Mozilla/5.0 (compatible; YandexMarket/1.0; +http://yandex.com/bots)— робот Яндекс.Маркета;
  • Mozilla/5.0 (compatible; YandexVertis/3.0; +http://yandex.com/bots)— робот поисковых вертикалей;
  • Mozilla/5.0 (compatible; YandexCalendar/1.0; +http://yandex.com/bots)— робот Яндекс.Календаря, используется для синхронизации с другими календарями, особым образом интерпретирует robots.txt.

Матрикснет

Матрикснет — метод машинного обучения, который используется в Яндексе для построения формулы ранжирования. Внедрен в ноябре 2009 года вместе с алгоритом «Снежинск».

Архитектура поисковых систем - Матрикснет

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

Особенности Матрикснета:

  • Можно построить очень длинную и сложную формулу ранжирования, которая учитывает множество различных факторов и их комбинаций. Другие методы машинного обучения позволяют либо строить более простые формулы с меньшим количеством факторов, либо нуждаются в большей обучающей выборке. Матрикснет строит формулу с десятками тысяч коэффициентов. Это позволяет сделать существенно более точный поиск;
  • Формулу ранжирования можно настраивать отдельно для достаточно узких классов запросов. Например, улучшить качество поиска только по запросам про музыку. При этом ранжирование по остальным классам запросов не ухудшится. Для примера можно представить себе формулу ранжирования в виде сложного механизма с большим количеством ручек. На механизмах, построенных по другим технологиям, каждая ручка влияет на все запросы. Матрикснет дает возможность настроить каждую ручку отдельно для своего класса запросов.

Google

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

Сканирование

Сканирование – это процесс, в ходе которого робот Googlebot обнаруживает новые и обновленные страницы для добавления в индекс Google.

Google  использует огромную сеть компьютеров, чтобы извлечь (или “просканировать”) содержание миллиардов веб-страниц. Программа, выполняющая сканирование, называется роботом Google (или пауком). Робот Googlebot использует алгоритмический процесс: программы определяют, какие сайты нужно сканировать, как часто это нужно делать, а также какое количество страниц следует выбрать на каждом сайте.

Процесс сканирования Google начинается со списка URL веб-страниц, созданного на основе предыдущих сеансов сканирования. Его дополняют данные из файлов Sitemap, предоставленных веб-мастерами. Просматривая каждый из этих сайтов, поисковый робот Googlebot находит на каждой странице ссылки и добавляет их в список страниц, подлежащих сканированию. Робот Googlebot отмечает все новые и обновленные сайты, а также неработающие ссылки.

Индексирование

Робот Googlebot обрабатывает каждую сканируемую страницу, чтобы составить полный индекс всех найденных слов, а также отметить, в какой части страницы они находятся. Кроме того, обрабатываются данные из основных тегов и атрибутов, например тегов Title и атрибутов ALT. Робот Googlebot способен обрабатывать многие (но не все) типы содержания. К примеру, обработке не поддается содержание некоторых файлов мультимедиа и динамически создаваемых страниц.

Предоставление результатов

Когда пользователь вводит поисковый запрос, система находит в индексе подходящие страницы и выдает наиболее релевантные  результаты. Релевантность определяется различными факторами. Один из них – это рейтинг PageRank для конкретной страницы. PageRank является показателем “важности” страницы и определяется на основе входящих ссылок с других страниц. Проще говоря, каждая ссылка на страницу вашего сайта с другого сайта увеличивает PageRank вашего сайта.

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

Архитектура поисковой системы Google

По данным Comscore, за два последних месяца 2012 года этот поисковик обработал 114,7 млрд запросов — это соответствует 65,2% мирового рынка поиска. Показатели ближайшего конкурента, китайского Baidu, в восемь раз меньше. Да что там говорить, у психологов даже специальный термин есть — Google Effect: современным людям, оказывается, проще не запоминать факты, а в нужный момент отыскать их в интернете. 

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

Архитектура поисковой системы Google

Самым важным достижением Google является построение архитектурной пирамиды своего детища — аппаратно-программной структуры системы хранения и индексирования веб-контента, допускающей практически неограниченное масштабирование.

В основании пирамиды лежит кластерный массив, единичным узлом которого был недорогой и далеко не лучший по надёжности компьютер — сервер Google. Его архитектура была разработана в 2005 году. В то время как дорогостоящие отказоустойчивые кластеры использовали сложные системы резервного питания, каждый из серверов Google толщиной в 3,5 дюйма (2U в стоечной терминологии) имел собственную двенадцативольтовую батарейку. 

Использование в качестве резервного источника питания не централизованной системы бесперебойного питания, а недорогих батарей, монтируемых прямо на сервере, многократно снизило затраты на аппаратную составляющую империи Google. Договориться с поставщиком материнских плат (на первых порах эту роль играла компания Gigabyte) о небольшой модификации блока распределения напряжения оказалось куда дешевле, чем городить отработанные кем-то решения по резервированию питания.

Архитектура поисковой системы гугл

Google File System (GFS)— собственная файловая система, рассчитаная на работу в условиях, когда аппаратные и сетевые сбои являются нормой, а не чрезвычайной ситуацией. То есть они отказались от стандартных NFS и AFS.

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

Роботы Google

Поисковыми роботами принято называть любые программы (такие как роботы или пауки), которые автоматически обнаруживают и сканируют веб-сайты, переходя по ссылкам от страницы к странице. Основной поисковый робот Google называется Googlebot. В следующей таблице приведены сведения о популярных поисковых роботах Google, регистрируемых в журналах источников ссылок. Кроме того, показано, как задавать этих роботов в файле robots.txt, в метатегах robots и в командах X-Robots-Tag HTTP.

 Поисковый робот

Специализация/предназначение

Робот Googlebot (веб-поиск Google)

Основной робот

Googlebot News

Новостной (принцип быстрого робота)

Googlebot Images

Изображения

Googlebot Video

Видео контент

Google Mobile

Индексация мобильного контента.

Google Mobile AdSense

Мобильные объявления

Google AdSense

Сервис контекстной рекламы от Google.

Google AdsBot

Проверка качества целевой страницы

Оценка качества ресурсов

Руководство для веб-мастеров содержит технические рекомендации, советы по дизайну и обеспечению качества. Ниже приведены советы по оптимизации сайта для Google:

Предоставьте посетителям необходимую информацию

Создайте высококачественное содержание для своих страниц, особенно для главной. При разработке полезного и информативного сайта создавайте страницы с четким и точным описанием их тематики.

Приложите усилия, чтобы на других сайтах были ссылки на ваш сайт

Ссылки повышают вероятность обнаружения вашего сайта нашими сканерами и частоту его отображения в наших результатах поиска. Алгоритмы могут отличать естественные ссылки от неестественных.

Обеспечьте легкий доступ к своему сайту

Создавайте сайт с использованием логической структуры ссылок. На каждую страницу должен быть доступен переход хотя бы по одной статической текстовой ссылке.

Чего не следует делать:

  • Не заполняйте свои страницы списками ключевых слов, не пытайтесь публиковать разное содержание для поисковых систем и для пользователей, не создавайте страницы, предназначенные только для сканеров.
  • Не используйте изображения для показа важных имен и названий, а также другого важного содержания и ссылок. Робот не распознает текст, содержащийся в изображениях. Если основное содержание и ключевые слова на вашей странице нельзя перевести в обычный HTML-формат, используйте ALT.
  • Не создавайте несколько копий страницы под разными URL-адресами. Многие сайты содержат текстовые версии страниц и версии для печати, имеющие такое же содержание, как и соответствующие страницы с графикой. Если на вашем сайте хранится несколько страниц с одинаковым содержанием, вы можете указать URL канонической (предпочитаемой) версии для Google.

Специальные поисковые запросы

С помощью специальных поисковых запросов можно увидеть пример результатов, показывающих, как Google индексирует ваш сайт. Чтобы увидеть их полный список, воспользуйтесь оператором info:. Пример: info:google.com. Подробнее о каждом типе поиска рассказано ниже.

Памятка специальных запросов Google: https://support.google.com/webmasters/answer/35256?hl=ru

Оставьте комментарий

Top.Mail.Ru Яндекс.Метрика
Пролистать наверх