Как работают поисковые системы. Работа с картой в поисковой системе

Как работают поисковые системы.  Работа с картой в поисковой системе
Как работают поисковые системы. Работа с картой в поисковой системе

21.11.2017

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

На просторах нашего отечественного интернета самые популярные две поисковые системы – Google и Яндекс.

Вы хотя бы раз задумывались, как работает поисковая система? Как она понимает, какой сайт показать, на каком из миллионов ресурсов точно есть ответ на ваш запрос?

Что представляет собой поисковая система?

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

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

По своей сути поисковая система – это каталог сайтов, справочник, основная функция которого – поиск информации по этому самому каталогу.

Как я уже написал выше, у нас популярные две системы – Google (мировая) и Яндекс (русскоязычный сегмент). Но есть еще такие системы, как Rambler, Yahoo, Bing, Mail.Ru и другие. Принцип работы похож у них у всех, отличаются только алгоритмы ранжирования (и то не сильно существенно).

Как работает поисковая система в Интернете

Принцип работы поисковых систем очень сложный, но я попробую объяснить простыми словами.

Поисковый робот (паук) обходит страницы сайта, скачивает их содержимое и извлекает ссылки. Далее начинает свою работу индексатор – это программа, которая анализирует все скачанные пауками материалы, опираясь на собственные алгоритмы работы.

Таким образом, создается база данных поисковой системы, в которой хранятся все обработанные алгоритмом документы.

Работа с поисковым запросом проводится следующим образом:

  • анализируется введенный пользователем запрос;
  • результаты анализы передаются специальному модулю ранжирования;
  • обрабатываются данные всех документов, выбираются самые релевантные введенному запросу;
  • генерируется сниппет – заголовок, дескрипшн, слова из запроса подсвечиваются полужирным;
  • результаты поиска представляются пользователю в виде SERP (страницы выдачи).

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

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

Принцип работы поисковых машин базируется на двух основных этапах:

  • обход страниц, с помощью которого собираются данные;
  • присвоение индекса, благодаря которому система сможет быстро проводить поиск по содержимому данной страницы.

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

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

Принципы ранжирования сайтов в поисковых системах

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

Ранжирование базируется на двух основных «китах» — текстовое содержание страницы и нетекстовые факторы.

Текстовое содержание – это контект страницы. Чем он полнее, чем точнее, чем релевантнее запросу – тем выше будет страница в результатах выдачи. Кроме самого текста, поисковая система обращает внимание на заполнение тегов title (заголовок страницы), description (описание страницы), H1 (заголовок текста).

Нетекстовые факторы – это внутренняя перелинковка и внешние ссылки. Суть в чем: если сайт интересен, полезен, значит, на него ссылаются другие тематические ресурсы. И чем больше таких ссылок – тем авторитетнее ресурс.

Но это – самые основные принципы, очень кратко. Вникнем чуть глубже.

Основные факторы ранжирования сайта

Есть целый ряд факторов, влияющих на ранжирование сайта. Основные из них – это:

1. В нутренние факторы ранжирования сайта

Это текст на сайте и его оформление – подзаголовки, выделение важных моментов в тексте. Использование внутренней перелинковки тоже сюда относится. Также важны визуальные элементы: использование картинок, фотографий, видео, графиков. Немаловажно также качество самого текста, его содержание.

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

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

Поисковая система или просто “поисковик” – это , осуществляющая поиск интернет страниц в соответствии с запросом пользователя. Самая известная поисковая система в мире - это Google, самая популярная в России – Яндекс, а одной из самых старых поисковых систем является Yahoo. В архитектуре поисковой системы можно выделить поисковую машину – ядро системы, представленное набором программных модулей; базу данных или индекс , хранящую информацию обо всех известных поисковой системе интернет ресурсах; и набор сайтов, являющих собой точки входа пользователей в систему (www.google.com, www.yandex.ru, ru.yahoo.com, и т.д.). Все это соответствует классической трехуровневой архитектуре информационных систем: есть пользовательский интерфейс, бизнес логика, которая в данном случае представлена реализацией алгоритмов поиска и база данных.

Специфика поиска в интернете

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

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

Второе отличие, как одно из следствий первого – это то, что запрос представляется не в виде набора значений параметров (критериев поиска), а в виде текста, написанного человеком на естественном для него языке. Таким образом, перед тем, как начать поиск нужно еще понять, чего именно хочет автор запроса. Замечу, понять не другому человеку, а вычислительной машине.

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

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

Из чего состоит поисковая машина

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

Теперь кратко о том, из чего состоит поисковая машина:

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

  • Индексатор (indexer). Индексатор производит первоначальный анализ содержимого скачанной страницы, выделяет основные части (название страницы, описание, ссылки, заголовки и т.д.) и раскладывает все это по разделам поисковой базы данных – помещает в индекс поисковой системы. Этот процесс называют индексацией интернет ресурсов , отсюда и название самой подсистемы. На основе результатов первоначального анализа индексатор также может принять решение, что страница вообще “недостойна” находиться в индексе. Причины такого решение могут быть разными: страница не имеет названия, является точной копией другой, уже имеющейся в индексе страницы или содержит ссылки на запрещенные законодательством ресурсы.

  • Краулер (crawler). Это “животное” призвано “ползать” по ссылкам, имеющимся на скачанной пауком странице. Краулер анализирует пути, ведущие с текущей страницы на другие разделы сайта, или на страницы внешних интернет ресурсов и определяет дальнейший порядок обхода пауком нитей всемирной паутины. Именно краулер находит новые для поисковой машины страницы и передает их пауку. Работа краулера построена на базе алгоритмов поиска на графах в ширину и глубину.

  • Подсистема обработки и выдачи результатов (Search Engine and Results Engine). Самая важная часть любой поисковой машины. Алгоритмы работы этой подсистемы компании разработчики хранят в строгой секретности, поскольку они являют собой коммерческую тайну. Именно эта часть поисковой машины отвечает за адекватность ответа поисковой системы на запрос пользователя. Здесь можно выделить два основных компонента:
    • Подсистема ранжирования. Ранжирование – это страниц интернет сайтов в соответствии с их релевантностью определенному запросу. Релевантность страницы – это, в свою очередь, степень соответствия содержания страницы смыслу запроса, и эту величину поисковая машина определяет самостоятельно, исходя из огромного количества параметров. Ранжирование – эта самая загадочная и спорная часть “искусственного интеллекта” поисковой машины. На ранжирование страницы, помимо ее структуры и содержимого (контента) также влияют: количество и качество ссылок, ведущих на данную страницу с других сайтов; возраст домена самого сайта; характер поведения пользователей, просматривающих страницу и многие другие факторы.

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

      • Пользовательские предпочтения , о которых она (поисковая машина) может “догадываться”, анализируя выбираемые пользователем ссылки на страницах результатов поиска. Это еще один способ скорректировать контекст запроса: пользователь своими действиями как бы подсказывает машине, что именно он хотел найти. Как правило, поисковые машины в результаты поиска стараются добавлять страницы, релевантные запросу, но относящиеся к довольно разным сферам жизни. Допустим, пользователь интересуется кино и поэтому часто выбирает ссылки на страницы с анонсами киноновинок, даже если эти страницы не вполне релевантны исходному запросу. При формировании ответа на его очередной запрос система может отдавать предпочтение страницам с описанием фильмов, в названии которых встречаются слова из текста запроса.

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

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

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

Общие принципы работы поисковой системы

Нужно понимать, что услуги поиска в интернете – это очень и очень выгодный бизнес. В детали, за счет чего живут такие компании, как Google и Яндекс можно не вдаваться, поскольку основная часть их прибыли – это доходы от контекстной рекламы. А раз поиск в интернете является крайне выгодным делом, то и конкуренция среди таких компаний весьма серьезная. Что определяет конкурентоспособность на рынке интернет поиска? Ответ – качество выдачи поисковой системы. Логично, что чем оно выше, тем больше у системы появляется новых пользователей, и тем ценнее размещаемая на страницах этой самой выдачи контекстная реклама. Разработчики поисковых систем затрачивают большие усилия, направленные на то, чтобы “очистить” результаты своей поисковой выдачи от разного рода информационного мусора, называемого в народе спамом (spam). Более подробно о том, как это делается, будет рассказано в отдельной статье, а здесь я приведу общие принципы поведения поисковой системы, сформулированные в виде выводов по всему вышесказанному.

  1. Поисковая машина в лице своих пауков и краулеров постоянно сканирует интернет на предмет появления новых и обновления существующих страниц, поскольку неактуальная информация ценится ниже.

  2. Поисковая машина периодически обновляет ранжирование ресурсов по их релевантности ключевым запросам, поскольку в индексе постоянно появляются новые страницы. Этот процесс называют обновлением (update) поисковой выдачи.

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

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

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

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

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Как работает поисковая система – основные положения

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

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Как работает поисковик – индексация сайтов

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

Совет! Чем чаще обновляется сайт, тем чаще его будут посещать поисковые роботы. Это положительно отразится на индексации.

Формирование релевантной выдачи

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

  • частота употребления ключевых запросов;
  • тематическое соответствие материала основной тематике сайта;
  • наличие синонимов ключевых фраз;
  • присутствие ключей в заголовках, метатегах и т.п.

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

Как работают поисковики – ответ на запрос

На основании заведенного поискового запроса система производит анализ проиндексированных материалов. Затем робот формирует ссылки на сайты, наиболее полно отвечающие запросу юзера. Недавно в принцип работы поисковой системы были внесены некоторые изменения. Теперь роботы формируют выдачу с учетом пользовательских предпочтений.
Поясним на конкретном примере: есть два пользователя, один из которых интересуется кулинарными рецептами, а другой часто заказывает фастфуд на дом. Эти пользователи могут завести одинаковый запрос «вкусная пицца», но поисковик предоставит им ссылки на разные сайты. Первый получит перечень рецептов приготовления пиццы, а второй – адреса ресторанов, специализирующихся на доставке этого блюда.

В июле прошлого года не стало Ильи Сегаловича , основателя и директора по технологиям «Яндекса», создателя первой версии поисковика и автора его названия. В память об этом выдающемся человеке и общественном деятеле, который помог многим, в том числе и COLTA . RU , мы републикуем его об информационном поиске и математических моделях, которые лежат в его основе. Илья Сегалович называл поисковые системы одним из двух новых чудес света. Во всяком случае, без них и в том числе без главного детища Сегаловича - «Яндекса» наша жизнь была бы совсем другой.

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

Поисковые системы в исторической перспективе

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

Но что же поменялось в действительности за последние годы? Не алгоритмы и не структуры данных, не математические модели. Хотя и они тоже. Поменялась парадигма использования систем. Проще говоря, к экрану со строчкой поиска подсели домохозяйка, ищущая утюг подешевле, и выпускник вспомогательного интерната в надежде найти работу автомеханика. Кроме появления фактора, невозможного в доинтернетовскую эру, - фактора тотальной востребованности поисковых систем - стала очевидна еще пара изменений. Во-первых, стало ясно, что люди не только «думают словами», но и «ищут словами». В ответе системы они ожидают увидеть слово, набранное в строке запроса. И второе: «человека ищущего» трудно «переучить искать», так же как трудно переучить говорить или писать. Мечты 60-80-х об итеративном уточнении запросов, о понимании естественного языка, о поиске по смыслу, о генерации связного ответа на вопрос с трудом выдерживают сейчас жестокое испытание реальностью.

Алгоритм + структура данных = поисковая система

Как и любая программа, поисковая система оперирует структурами данных и исполняет алгоритм. Разнообразие алгоритмов не очень велико, но оно есть. Не считая квантовых компьютеров, которые обещают нам волшебный прорыв в «алгоритмической сложности» поиска и про которые автору почти ничего не известно, есть четыре класса поисковых алгоритмов. Три алгоритма из четырех требуют «индексирования», предварительной обработки документов, при котором создается вспомогательный файл, сиречь «индекс», призванный упростить и ускорить сам поиск. Это алгоритмы инвертированных файлов, суффиксных деревьев, сигнатур. В вырожденном случае предварительный этап индексирования отсутствует, а поиск происходит при помощи последовательного просмотра документов. Такой поиск называется прямым.

Прямой поиск

Простейшая его версия знакома многим, и нет программиста, который бы не написал хотя бы раз в своей жизни подобный код:

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

Хотя прямой просмотр всех текстов - довольно медленное занятие, не следует думать, что алгоритмы прямого поиска не применяются в интернете. Норвежская поисковая система Fast использовала чип, реализующий логику прямого поиска упрощенных регулярных выражений (fastpmc ) , и разместила 256 таких чипов на одной плате. Это позволяло Fast обслуживать довольно большое количество запросов в единицу времени.

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

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

Инвертированный файл

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

Проиллюстрируем эту структуру при помощи замечательного русского конкорданса - «Симфонии», выпущенной Московской патриархией по тексту синодального перевода Библии.

Перед нами упорядоченный по алфавиту список слов. Для каждого слова перечислены все «позиции», в которых это слово встретилось. Поисковый алгоритм состоит в отыскании нужного слова и загрузке в память уже развернутого списка позиций.

Чтобы сэкономить на дисковом пространстве и ускорить поиск, обычно прибегают к двум приемам. Во-первых, можно сэкономить на подробности самой позиции. Ведь чем подробнее задана такая позиции (например, в случае с «Симфонией» это «книга+глава+стих»), тем больше места потребуется для хранения инвертированного файла.

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

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

Дополнительно на разностный способ хранения адресов накладывают какой-нибудь простенький способ упаковки: зачем отводить небольшому целому числу фиксированное «огромное» количество байтов, ведь можно отвести ему почти столько байтов, сколько оно заслуживает. Здесь уместно упомянуть коды Голомба или встроенную функцию популярного языка Perl : pack («w ») .

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

В результате всех описанных ухищрений размер инвертированного файла, как правило, составляет от 7 до 30 процентов от размера исходного текста, в зависимости от подробности адресации.

Занесены в «Красную книгу»

Неоднократно предлагались другие, отличные от инвертированного и прямого поиска, алгоритмы и структуры данных. Это, прежде всего, суффиксные деревья (Манбер, Гоннет), а также сигнатуры (Фалуцос).

Первый из них функционировал и в интернете, будучи запатентованным алгоритмом поисковой системы OpenText . Мне доводилось встречать суффиксные индексы в отечественных поисковых системах. Второй - метод сигнатур - представляет собой преобразование документа к поблочным таблицам хеш-значений его слов - «сигнатуре» и последовательному просмотру «сигнатур» во время поиска.

Широкого распространения ни тот, ни другой метод не получили, а следовательно, не заслужили и подробного обсуждения в этой небольшой статье.

Математические модели

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

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

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

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

Критика булевской модели, вполне справедливая, состоит в ее крайней жесткости и непригодности для ранжирования. Поэтому еще в 1957 году Джойс и Нидхэм предложили учитывать частотные характеристики слов, чтобы «... операция сравнения была бы отношением расстояния между векторами...» (Джойс, 1957). Векторная модель и была с успехом реализована в 1968 году отцом- основателем науки об информационном поиске Джерардом Солтоном (Gerard Salton ) в поисковой системе SMART (Salton "s Magical Automatic Retriever of Text ) .

Ранжирование в этой модели основано на естественном статистическом наблюдении, что чем больше локальная частота термина в документе (TF ) и больше «редкость» (т.е. обратная встречаемость в документах) термина в коллекции (IDF ) , тем выше вес данного документа по отношению к термину. Обозначение IDF ввела Карен Спарк-Джоунз в 1972 г. в статье про различительную силу (term specificity ) . С этого момента обозначение TF *IDF широко используется как синоним векторной модели.

Наконец, в 1977 году Робертсон и Спарк-Джоунз обосновали и реализовали вероятностную модель (предложенную еще в 1960-м (Марон)), также положившую начало целому семейству. Релевантность в этой модели рассматривается как вероятность того, что данный документ может оказаться интересным пользователю. При этом подразумевается наличие уже существующего первоначального набора релевантных документов, выбранных пользователем или полученных автоматически при каком-нибудь упрощенном предположении. Вероятность оказаться релевантным для каждого следующего документа рассчитывается на основании соотношения встречаемости терминов в релевантном наборе и в остальной, «нерелевантной» части коллекции. Хотя вероятностные модели обладают некоторым теоретическим преимуществом - ведь они располагают документы в порядке убывания «вероятности оказаться релевантным», - на практике они так и не получили большого распространения.

Я не собираюсь вдаваться в подробности и выписывать громоздкие формулы для каждой модели. Их сводка вместе с обсуждением занимает в сжатом виде 35 страниц в книжке «Современный информационный поиск» (Баэса-Ятес). Важно только заметить, что в каждом из семейств простейшая модель исходит из предположения о взаимонезависимости слов и обладает простым условием фильтрации: документы, не содержащие слова запроса, никогда не бывают найденными. Продвинутые («альтернативные») модели каждого из семейств не считают слова запроса взаимонезависимыми, а кроме того, позволяют находить документы, не содержащие ни одного слова из запроса.

Поиск «по смыслу»

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

Для примера опишу лишь одну, пожалуй, самую популярную модель, работающую по смыслу. В теории информационного поиска данную модель принято называть латентно-семантическим индексированием (иными словами, выявлением скрытых смыслов). Эта алгебраическая модель основана на сингулярном разложении прямоугольной матрицы, ассоциирующей слова с документами. Элементом матрицы является частотная характеристика, отражающая степень связи слова и документа, например, TF *IDF . Вместо исходной миллионноразмерной матрицы авторы метода Фурнас и Дирвестер предложили использовать 50-150 «скрытых смыслов» , соответствующих первым главным компонентам ее сингулярного разложения.

Сингулярным разложением действительной матрицы A размеров m *n называется всякое ее разложение вида A = USV , где U m *m , V - ортогональная матрица размеров n *n , S - диагональная матрица размеров m *n , элементы которой sij = 0 , если i не равно j , и sii = si >= 0 . Величины si называются сингулярными числами матрицы и равны арифметическим значениям квадратных корней из соответствующих собственных значений матрицы AAT . В англоязычной литературе сингулярное разложение принято называть SVD -разложением.

Давным-давно доказано (Экарт), что если оставить в рассмотрении первые k сингулярных чисел (остальные приравнять к нулю), мы получим ближайшую из всех возможных аппроксимацию исходной матрицы ранга k (в некотором смысле ее «ближайшую семантическую интерпретацию ранга k »). Уменьшая ранг, мы отфильтровываем нерелевантные детали; увеличивая, пытаемся отразить все нюансы структуры реальных данных.

Операции поиска или нахождения похожих документов резко упрощаются, так как каждому слову и каждому документу сопоставляется относительно короткий вектор из k смыслов (строки и столбцы соответствующих матриц). Однако по причине малой осмысленности «смыслов» или по какой иной , но использование LSI в лоб для поиска так и не получило распространения. Хотя во вспомогательных целях (автоматическая фильтрация, классификация, разделение коллекций, предварительное понижение размерности для других моделей) этот метод, по-видимому, находит применение.

Оценка качества

«...проверка устойчивости показала, что перекрытие релевантных документов между любыми двумя асессорами примерно 40% в среднем <...> точность и полнота, измеренная между асессорами, около 65% <...> Это накладывает практическую верхнюю границу на качество поиска в районе 65%...»

(«What we have learned, and not learned, from TREC», Donna Harman)

Какова бы ни была модель, поисковая система нуждается в «тюнинге» - оценке качества поиска и настройке параметров. Оценка качества - идея, фундаментальная для теории поиска. Ибо именно благодаря оценке качества можно говорить о применимости или неприменимости той или иной модели и даже обсуждать их теоретические аспекты.

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

«...Я был потрясен, когда кто-то из Google сказал мне, что они вообще не используют ничего наработанного в TREC , потому что все алгоритмы, заточенные на дорожке “произвольных запросов”, спам расшибает вдребезги...»

Пора вернуться к теме, с которой началась эта статья: что же изменилось в поисковых системах за последнее время?

Прежде всего, стало очевидно, что поиск в вебе не может быть сколько-нибудь корректно выполнен, будучи основан на анализе (пусть даже сколь угодно глубоком, семантическом и т.п.) одного лишь текста документа. Ведь внетекстовые (off -page ) факторы играют не меньшую, а порой и бо́льшую роль, чем текст самой страницы. Положение на сайте, посещаемость, авторитетность источника, частота обновления, цитируемость страницы и ее авторов - все эти факторы невозможно сбрасывать со счета.

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

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

Для примера рассмотрим пару таких задач и практических способов их решения в поисковых системах для интернета.

Качество ранжирования

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

Простейшая идея глобального (т.е. статического) учета ссылочной популярности состоит в подсчете числа ссылок, указывающих на страницы. Примерно то, что в традиционном библиотековедении называют индексом цитирования. Этот критерий использовался в поисковых системах еще до 1998 года. Однако он легко подвергается накрутке, кроме того, он не учитывает вес самих источников.

Естественным развитием этой идеи можно считать предложенный Брином и Пейджем в 1998 году алгоритм PageRank - итеративный алгоритм, подобный тому, что используется в задаче определения победителя в шахматном турнире по швейцарской системе. В сочетании с поиском по лексике ссылок, указывающих на страницу (старая, весьма продуктивная идея, которая использовалась в гипертекстовых поисковых системах еще в 80-е годы), эта мера позволила резко повысить качество поиска.

Немного раньше, чем PageRank , был предложен локальный (т.е. динамический, основанный на запросе) алгоритм учета популярности - HITS (Кляйнберг), который не используется на практике в основном из-за вычислительной дороговизны. Примерно по той же причине, что и локальные (т.е. динамические) методы, оперирующие словами.

Оба алгоритма, их формулы, условия сходимости подробно описаны, в том числе и в русскоязычной литературе. Отмечу только, что расчет статической популярности не является самоценной задачей, он используется в многочисленных вспомогательных целях: определение порядка обхода документов, ранжирование поиска по тексту ссылок и т.д. Формулы расчета популярности постоянно улучшают, в них вносят учет дополнительных факторов - тематической близости документов (например, популярная поисковая система www .teoma .com ), их структуры и т.п., позволяющих понизить влияние непотизма. Интересной отдельной темой является эффективная реализация соответствующих структур данных (Бхарат).

Качество индекса

Хотя размер базы в интернете на поверхностный взгляд не кажется критическим фактором, это не так. Недаром рост посещаемости таких машин, как Google и Fast , хорошо коррелирует именно с ростом их баз. Основная причины: «редкие» запросы, то есть те, по которым находится менее 100 документов, составляют в сумме около 30% от всей массы поисков - весьма значительную часть. Этот факт делает размер базы одним из самых критичных параметров системы.

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

Происхождение копий документов в интернете может быть различным. Один и тот же документ на одном и том же сервере может отличаться по техническим причинам: быть представлен в разных кодировках и форматах, содержать переменные вставки - рекламу или текущую дату.

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

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

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

Для решения этой задачи Уди Манбер (автор известной программы приближенного прямого поиска agrep ) в 1994 году предложил идею, а Андрей Бродер в 1997-м придумал название и довел до ума алгоритм «шинглов» (от слова shingles - «черепички, чешуйки»). Вот его примерное описание.

Для каждого десятисловия текста рассчитывается контрольная сумма (шингл). Десятисловия идут внахлест, с перекрытием, так, чтобы ни одно не пропало. А затем из всего множества контрольных сумм (очевидно, что их столько же, сколько слов в документе минус 9) отбираются только те, которые делятся на, скажем, 25. Поскольку значения контрольных сумм распределены равномерно, критерий выборки никак не привязан к особенностям текста. Ясно, что повтор даже одного десятисловия - весомый признак дублирования, если же их много, скажем, больше половины, то с определенной (несложно оценить вероятность) уверенностью можно утверждать: копия найдена! Ведь один совпавший шингл в выборке соответствует примерно 25 совпавшим десятисловиям в полном тексте!

Очевидно, что так можно определять процент перекрытия текстов, выявлять все его источники и т.п. Этот изящный алгоритм воплотил давнюю мечту доцентов: отныне мучительный вопрос «у кого студент списывал этот курсовик» можно считать решенным! Легко оценить долю плагиата в любой статье .

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

Цена одного процента

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

Для того чтобы справиться с этой проблемой, индекс разбивают на части и раскладывают по десяткам, сотням и даже тысячам компьютеров. Сами компьютеры начиная с 1997 года (поисковая система Inktomi ) представляют собой обычные 32-битные машины (Linux , Solaris , FreeBSD , Win 32 ) с соответствующими ограничениями по цене и производительности. Исключением из общего правила осталась лишь AltaVista , которая с самого начала использовала относительно «большие» 64-битные компьютеры Alpha .

Поисковые системы для интернета (и вообще все большие поисковые сиcтемы) могут ускорять свою работу при помощи техник эшелонирования и прюнинга.

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

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

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

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

Syntactic Clustering of the Web
Andrei Z. Broder, Steven C. Glassman, Mark S. Manasse
WWW6, 1997

The Approximation of One Matrix by Another of Lower Rank
Eckart, G. Young Psychometrika, 1936

Description and Performance Analysis of Signature File Methods
Faloutsos, S. Christodoulakis
ACM TOIS, 1987

Information Retrieval Using a Singular Value Decomposition Model of Latent Semantic Structure
G.W. Furnas, S. Deerwester, S.T. Dumais, T.K. Landauer, R. A. Harshman, L.A. Streeter and K.E. Lochbaum
ACM SIGIR, 1988

Examples of PAT Applied to the Oxford English Dictionary
Gonnet G.
University of Waterloo, 1987

The Thesaurus Approach to Information Retrieval
T. Joyce and R.M. Needham
American Documentation, 1958

An Efficient Method to Detect Duplicates of Web Documents with the Use of Inverted Index
S. Ilyinsky, M. Kuzmin, A. Melkov, I. Segalovich
WWW2002, 2002

Suffix Arrays: A New Method for On-line String Searches
U. Manber, G. Myers
1st ACM-SIAM Symposium on Discrete Algorithms, 1990

Finding Similar Files in a Large File System
U. Manber
USENIX Conference, 1994

On Relevance, Probabilistic Indexing and Information Retrieval
M.E. Maron and J.L. Kuhns
Journal of the ACM, 1960

Relevance Weighting of Search Terms
S.E. Robertson and K. Sparck Jones
JASIS, 1976

Algorithms in C++
Robert Sedgewick
Addison-Wesley, 1992

A Statistical Interpretation of Term Specificity and Its Application in Retrieval
K. Sparck Jones
Journal of Documentation, 1972

Natural Language Information Retrieval
Tomek Strzalkowski (ed.)
Kluwer Academic Publishers, 1999

Симфония, или Словарь-указатель к Священному Писанию Ветхого и Нового Завета
Составители М.А. Бондарев, М.С. Косьян, С.Ю. Косьян
Изд-во Московской патриархии, 1995

Глоссарий

Асессор (assessor , эксперт) - специалист в предметной области, выносящий заключение о релевантности документа, найденного поисковой системой.

Булевская модель (boolean , булева, булевая, двоичная) - модель поиска, опирающаяся на операции пересечения, объединения и вычитания множеств.

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

Вероятностная модель - модель информационного поиска, рассматривающая релевантность как вероятность соответствия данного документа запросу на основании вероятностей соответствия слов данного документа идеальному ответу.

Внетекстовые критерии (off -page , внестраничные) - критерии ранжирования документов в поисковых системах, учитывающие факторы, не содержащиеся в тексте самого документа и не извлекаемые оттуда никаким образом.

Входные страницы (doorways , hallways ) - страницы, созданные для искусственного повышения ранга в поисковых системах (поискового спама). При попадании на них пользователя перенаправляют на целевую страницу.

Дизамбигуация (tagging , part of speech disambiguation , таггинг) - выбор одного из нескольких омонимов c помощью контекста; в английском языке часто сводится к автоматическому назначению грамматической категории «часть речи».

Дубликаты (duplicates ) - разные документы с идентичным, с точки зрения пользователя, содержанием; приблизительные дубликаты (near duplicates , почти-дубликаты), в отличие от точных дубликатов, содержат незначительные отличия.

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

Инвертированный файл (inverted file , инверсный файл, инвертированный индекс, инвертированный список) - индекс поисковой системы, в котором перечислены слова коллекции документов, а для каждого слова перечислены все места, в которых оно встретилось.

Индекс (index , указатель) - см. Индексирование.

Индекс цитирования (citation index ) - число упоминаний (цитирований) научной статьи, в традиционной библиографической науке рассчитывается за промежуток времени, например, за год.

Индексирование (indexing , индексация) - процесс составления или приписывания указателя (индекса) - служебной структуры данных, необходимой для последующего поиска.

Информационный поиск (Information Retrieval , IR ) - поиск неструктурированной информации, единицей представления которой является документ произвольных форматов. Предметом поиска выступает информационная потребность пользователя, неформально выраженная в поисковом запросе. И критерий поиска, и его результаты не детерминированы. Этими признаками информационный поиск отличается от «поиска данных», который оперирует набором формально заданных предикатов, имеет дело со структурированной информацией и чей результат всегда детерминирован. Теория информационного поиска изучает все составляющие процесса поиска, а именно предварительную обработку текста (индексирование), обработку и исполнение запроса, ранжирование, пользовательский интерфейс и обратную связь.

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

Контрастность термина - см. Различительная сила.

Латентно-семантическое индексирование - запатентованный алгоритм поиска по смыслу, идентичный факторному анализу. Основан на сингулярном разложении матрицы связи слов с документами.

Лемматизация (lemmatization , нормализация) - приведение формы слова к словарному виду, то есть лемме.

Накрутка поисковых систем - см. Спам поисковых систем.

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

Обратная встречаемость в документах (inverted document frequency , IDF , обратная частота в документах, обратная документная частота) - показатель поисковой ценности слова (его различительной силы); «обратная» говорят, потому что при вычислении этого показателя в знаменателе дроби обычно стоит число документов, содержащих данное слово.

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

Омонимия - см. Полисемия.

Основа - часть слова, общая для набора его словообразовательных и словоизменительных (чаще) форм.

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

Поиск похожих документов (similar document search ) - задача информационного поиска, в которой в качестве запроса выступает сам документ и необходимо найти документы, максимально напоминающие данный.

Поисковая система (search engine , SE , информационно-поисковая система, ИПС, поисковая машина, машина поиска, «поисковик», «искалка») - программа, предназначенная для поиска информации, обычно текстовых документов.

Поисковое предписание (query , запрос) - обычно строчка текста.

Полисемия (polysemy , многозначность) - наличие нескольких значений у одного и того же слова.

Полнота (recall , охват) - доля релевантного материала, заключенного в ответе поисковой системы, по отношению ко всему релевантному материалу в коллекции.

Почти-дубликаты (near -duplicates , приблизительные дубликаты) - см. Дубликаты.

Прюнинг (pruning ) - отсечение заведомо нерелевантных документов при поиске с целью ускорения выполнения запроса.

Прямой поиск - поиск непосредственно по тексту документов, без предварительной обработки (без индексирования).

Псевдообратная связь - см. Обратная связь.

Различительная сила слова (term specificity , term discriminating power , контрастность, различительная сила) - степень ширины или узости слова. Слишком широкие термины в поиске приносят слишком много информации, при этом существенная часть ее бесполезна. Слишком узкие термины помогают найти слишком мало документов, хотя и более точных.

Регулярное выражение (regular expression , pattern , «шаблон», реже «трафарет», «маска») - способ записи поискового предписания, позволяющий определять пожелания к искомому слову, его возможные написания, ошибки и т.д. В широком смысле - язык, позволяющий задавать запросы неограниченной сложности.

Релевантность (relevance , relevancy ) - соответствие документа запросу.

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

Словоизменение (inflection ) - образование формы определенного грамматического значения, обычно обязательного в данном грамматическом контексте, принадлежащей к фиксированному набору форм (парадигме), характерному для слов данного типа. В отличие от словообразования никогда не приводит к смене типа и порождает предсказуемое значение. Словоизменение имен называют склонением (declension ) , а глаголов - спряжением (conjugation ) .

Словообразование (derivation ) - образование слова или основы из другого слова или основы.

Смыслоразличительный - см. Различительная сила.

Спам поисковых систем (spam , спамдексинг, накрутка поисковых систем) - попытка воздействовать на результат информационного поиска со стороны авторов документов.

Статическая популярность - см. PageRank .

Стемминг - процесс выделения основы слова.

Стоп-слова (stop -words ) - те союзы, предлоги и другие частотные слова, которые данная поисковая система исключила из процесса индексирования и поиска для повышения своей производительности и/или точности поиска.

Суффиксные деревья, суффиксные массивы (suffix trees , suffix arrays , PAT -arrays ) - индекс, основанный на представлении всех значимых суффиксов текста в структуре данных, известной как «бор» (trie ) . Суффиксом в этом индексе называют любую «подстроку», начинающуюся с некоторой позиции текста (текст рассматривается как одна непрерывная строка) и продолжающуюся до его конца. В реальных приложениях длина суффиксов ограничена, а индексируются только значимые позиции - например, начала слов. Этот индекс позволяет выполнять более сложные запросы, чем индекс, построенный на инвертированных файлах.

Токенизация (tokenization , lexical analysis , графематический анализ, лексический анализ) - выделение в тексте слов, чисел и иных токенов, в том числе, например, нахождение границ предложений.

Точность (precision ) - доля релевантного материала в ответе поисковой системы.

Хеш-значение (hash -value ) - значение хеш-функции (hash -function ) , преобразующей данные произвольной длины (обычно строчку) в число фиксированного порядка.

Частота (слова) в документах (document frequency , встречаемость в документах, документная частота) - число документов в коллекции, содержащих данное слово.

Частота термина (term frequency , TF ) - частота употребления слова в документе.

Шингл (shingle ) - хеш-значение непрерывной последовательности слов текста фиксированной длины.

PageRank - алгоритм расчета статической (глобальной) популярности страницы в интернете, назван в честь одного из авторов - Лоуренса Пейджа. Соответствует вероятности попадания пользователя на страницу в модели случайного блуждания.

TF *IDF - численная мера соответствия слова и документа в векторной модели; тем больше, чем относительно чаще слово встретилось в документе и относительно реже - в коллекции.

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

Как работает поисковая система?

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

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

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

Модуль индексации извлекает информацию из каждой страницы, которую он посещает и вносит URL в базу. Это приводит к образованию огромной таблицы поиска, из списка URL-адресов указывающих на страницы с информацией. В таблице приведены те страницы, которые были покрыты в процессе обхода.

Модуль анализа является еще одной важной частью архитектуры поисковой системы. Он создает индекс полезности. Индекс утилита может предоставить доступ к страницам заданной длины или страниц, содержащих определенное количество картинок на них.

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

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

Архитектура гусеничного индексатора имеет много вариантов. Они изменяются в распределенной архитектуре поисковой системы. Эти архитектуры состоят из собирателей и брокеров. Собиратели собирают информацию индексации с веб-серверов в то время как брокеры дают механизм индексирования и интерфейс запросов. Брокеры индексируют обновление на основе информации, полученной от собирателей и других брокеров. Они могут фильтровать информацию. Многие поисковые системы сегодня используют этот тип архитектуры.

Поисковые системы и ранжирования страниц

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

Слова, указанные в интерфейсе запроса поисковой системы являются ключевыми словами, которые запрашивались в поисковых системах. Они представляют собой список страниц, имеющих отношение к запрашиваемым ключевым словам. Во время этого процесса, поисковые системы извлекают те страницы, которые имеют частые вхождений этих ключевых слов. Они ищут взаимосвязи между ключевыми словами. Расположение ключевых слов также считается, как и рейтинг страницы, содержащие их. Ключевые слова, которые встречаются в заголовках страниц или в URL, приведены в больший вес. Страницы, имеющие ссылки, указывающие на них, делают их еще более популярными. Если многие другие сайты, ссылаются на какую либо страницу, она рассматривается как ценная и более актуальная.

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

Веб-мастера пытаются обмануть алгоритмы поисковой системы, чтобы поднять позиции своего сайта в поисковой выдаче. Заполняют страницы сайта ключевыми словами или используют мета теги, чтобы обмануть стратегии рейтинга поисковой системы. Но поисковые системы достаточно умны! Они совершенствуют свои алгоритмы так, чтобы махинации веб-мастеров не влияли на поисковую выдачу.

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