Трюк с метасловами

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

Пример набора веб-страниц, у каждой из которых есть название и тело.

Чтобы проанализировать структуру веб-страницы так, как это делают поисковые системы, нужно кое-что знать о том, как эти страницы создаются. Веб-страницы записываются на специальном языке, который позволяет браузеру аккуратно форматировать страницу (чаще всего для этой цели применяется язык HTML, но его детали для нас несущественны). Инструкции форматирования названий, заголовков, ссылок, картинок и других подобных элементов записываются с помощью специальных слов, которые называются метасловами. Например, в начале названия страницы могло бы находиться метаслово , а в конце - метаслово . Аналогично тело страницы могло бы начинаться метасловом , а заканчиваться метасловом . Пусть вас не смущают знаки «<» и «>». Они есть почти на всех компьютерных клавиатурах и часто именуются по своему смыслу в математике: «меньше» и «больше». Но в данном случае никакого отношения к математике они не имеют, а употребляются просто как удобный способ отличить метаслова от обычных слов.

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

Взгляните на рисунок выше - содержимое страниц здесь в точности то же, что на предыдущем рисунке, но теперь мы видим, как страницы написаны, а не как они могли бы выглядеть в браузере. Большинство браузеров позволяют просмотреть исходный код вебстраницы, выбрав из меню пункт «Просмотр кода страницы» - попробуйте, когда будет возможность. (Кстати, упомянутые выше метаслова, например и , выдуманы, просто чтобы было понятнее, о чем речь. В настоящем языке HTML метаслова называются тегами. Название страницы располагается между тегами и - поищите их, когда будете просматривать код страницы.)

При построении индекса совсем нетрудно включить в него все метаслова. Никаких новых трюков не понадобится, нужно лишь сохранить позиции метаслов точно так же, как для обычных слов. На следующем рисунке показан индекс, построенный по трем страницам и включающий метаслова. Убедитесь, что ничего таинственного в этом индексе нет. Например, слову «mat» соответствует запись 1-11, 2-11, означающая, что это слово является одиннадцатым как на первой, так и на второй странице. С метасловами все обстоит точно так же: метаслову «» соответствует запись 1-4, 2-4, 3-4, означающая, что оно является четвертым на страницах 1, 2 и 3.

Это простой трюк - индексирование метаслов так же, как обычных, - мы будем называть «трюком с метасловами». На первый взгляд, он прост, как правда, однако же играет важнейшую роль, позволяя поисковой системе точно выполнять поиск и качественно ранжировать результаты. Рассмотрим простой пример. Предположим, что поисковая машина поддерживает специальный тип запросов с ключевым словом in: веб-страница удовлетворяет запросу boat in title, только если слово «boat» встречается в ее названии, а запрос giraffe in body ищет те страницы, для которых тело содержит слово «giraffe».

Отметим, что в большинстве настоящих поисковых систем запросы со словом in точно в таком виде не поддерживаются, но в некоторых того же эффекта можно добиться, перейдя в раздел «расширенный поиск», где можно указать, что слова запроса должны встречаться в названии или еще в какой-то части документа. Мы сделаем вид, что ключевое слово in действительно существует, чтобы упростить объяснение. На самом деле, на момент написания этой книги Google позволял искать в названии документа с помощью ключевого слова intitle:, т. е. в Google запрос intitle:boat находит страницы, для которых слово «boat» встречается в названии. Попробуйте сами!

Индекс для веб-страниц, показанных на предыдущем рисунке, с включением метаслов.

Как поисковая система выполняет Запрос dog IN TITLE.

Посмотрим, как поисковая система могла бы эффективно выполнить запрос dog in title на примере трех страниц, показанных на двух рисунках выше. Сначала она извлекает из индекса запись 2-3, 2-7,3-11 соответствующую слову «dog». Затем (это несколько неожиданно, но пока просто поверьте мне) она извлекает записи для обоих

Глава 2. Индексирование в поисковых системах ...

метаслов и : соответственно 1-1, 2-1,3-1 и 1-4,2-4,3-4. На рисунке выше показано, что извлечено к этому моменту - на кружочки и прямоугольники пока не обращайте внимания.

Далее поисковая система начинает просматривать запись индекса, соответствующую слову «dog»: для каждого результата проверяется, находится это слово в названии или нет. Первый результат для «dog» - обведенная кружочком пара 2-3 - соответствует третьему слову на странице 2. Просматривая запись для , поисковая система может узнать, где начинается название страницы 2, - это должна быть первая пара, начинающаяся с «2-». В данном случае просмотр завершается на обведенной кружочком паре 2-1, т. е. название страницы 2 начинается словом с номером 1. Точно так же система может узнать, где заканчивается название страницы 2. Для этого нужно просмотреть запись для слова и найти пару, начинающуюся с «2-»; в данном случае это оказывается пара 2-4. Таким образом, название страницы 2 заканчивается словом с номером 4.

Все, что мы на данный момент знаем, сконцентрировано в обведенных кружочками элементах, которые говорят нам, что название страницы 2 начинается со слова 1 и заканчивается словом 4, а слово «dog» имеет номер 3. Последний шаг прост: так как 3 больше 1 и меньше 4, то мы с уверенностью можем сказать, что слово «dog» действительно встречается в названии, и, следовательно, страница 2 удовлетворяет запросу dog IN TITLE.

Теперь поисковая система может перейти к следующему потенциальному результату для слова «dog». Ему соответствует пара 2-7 (седьмое слово на странице 2), но поскольку мы уже знаем, что страница 2 удовлетворяет запросу, то эту пару можно пропустить и перейти к следующей - 3-11, которая обведена прямоугольником. Эта пара говорит, что «dog» - одиннадцатое слово на странице 3. Мы начинаем просмотр записей индекса, соответствующих и , с пар, следующих за теми, что сейчас обведены кружочками, и ищем пары, начинающиеся с «3-». (Важно отметить, что возвращаться к началу каждой записи нет нужды - мы можем продолжить с того места, где остановились при анализе предыдущего результата.) В этом простом примере пара, начинающаяся с «3-», в обоих случаях оказывается следующей - 3-1 для и 3-4 для . Обе они для наглядности обведены прямоугольниками. Вспомним, что наша задача - определить, находится слово «dog» в позиции 3-11 внутри названия или нет. Глядя на пары в прямоугольниках, мы видим, что на странице 3 «dog» - одиннадцатое слово, а название это страницы начинается словом 1 и заканчивается словом 4. Поскольку 11 больше 4, значит, это вхождение слова «dog» оказывается за названием, а не внутри него; таким образом, страница 3 не удовлетворяет запросу dog IN TITLE.

Итак, трюк с метасловами позволяет поисковой системе весьма эффективно отвечать на запросы к структуре документа. В рассмотренном примере мы искали слова внутри названия страницы, но аналогичную технику можно применить к поиску в гиперссылках, описаниях картинок и других значимых частях веб-страницы. И на все такие запросы можно будет отвечать столь же эффективно. Как и в ранее обсуждавшихся примерах, поисковой системе не нужно заглядывать в сами веб-страницы, для ответа достаточно просмотреть небольшую часть индекса. И что не менее важно, каждую запись индекса необходимо просмотреть только один раз. Вспомните, что произошло, после того как мы закончили обработку первого результата на странице 2 и перешли к потенциальному результату на странице 3: вместо того чтобы возвращаться к началу записей для метаслов и , поисковая система продолжила просмотр с того места, где остановилась. Это очень важно для повышения эффективности обработки запросов со словом in.

Запросы к названию документа и другие «структурные запросы», ответ на которые зависит от структуры веб-страницы, аналогичны запросам со словом near в том смысле, что люди их задают редко, зато сами поисковые системы выполняют их постоянно для внутренних надобностей. Причина та же, что и раньше: само существование поисковой системы зависит от качества ранжирования, а его можно значительно повысить, учитывая структуру страницы. Например, страницы, в которых слово «dog» встречается в заголовке, с гораздо большей вероятностью содержат информацию о собаках, чем страницы, в которых это слово упоминается только в теле страницы. Поэтому, когда пользователь вводит простой запрос dog, поисковая система может внутри себя выполнить запрос dog in title (хотя пользователь этого явно и не просил), чтобы найти страницы, посвященные собакам, а не просто такие, где собаки случайно упоминаются.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >