Принципы работы 
поисковой системы 
Алексей 
Данилин
План доклада 
1. Как работает современный поиск. 
2. Механизмы работы поисковых систем (ПС). 
3. Индексация сайтов. Структура и организация индексов. 
4. Ранжирование. 
5. Что такое пауки и как они работают.
Как работает современный поиск
Миллионы результатов за доли секунд
Различные типы ответов на запрос
Поиск по вертикалям
Расширенный поиск
Механизмы работы поисковых систем
Сканирование (Crawling) 
Сканирование - это сбор страниц в в вебе для их дальнейшего 
индексирования и поддержки функционирования поисковой 
системы. 
Основная цель - быстро и эффективно собрать как можно больше 
полезных веб-страниц вместе со ссылками, которые их 
объединяют. 
Процесс или машина, выполняющий сканирование - crawler. 
Совет: использовать robots.txt и sitemap.xml для настроек 
сканирования, устранять битые ссылки, регулировать вложенность 
страниц, размер страниц, внутреннюю ссылочную структуру.
Индексирование (Indexing) 
Индексирование - процесс создания индекса. 
Основная цель - построить индекс для дальнейшего 
осуществления по нему поиска. 
Процесс или машина, выполняющие индексирование - indexer. 
После добавления документов в индекс, они начинают 
участвовать в поиске по соответствующим запросам.
Поиск по индексу 
Поиск по индексу - выбор из индекса документов, 
соответствующих поисковому запросу. 
Введенный запрос анализируется (язык, стоп-слова, ошибки) и 
сопоставляется со всеми документами в базе данных поисковой 
системы (коллекции). 
На выходе выдается список всех документов, соответствующих 
запросу.
Ранжирование (Ranking) 
Ранжирование - присвоение документов ранга (рейтинга) в 
соответствие с формулой ранжирования и упорядочивание 
результатов в порядке уменьшения ранга. 
В формуле ранжирования могут учитываться: 
● вес страницы; 
● соответствие текста документа запросу (текстовая 
релевантность); 
● авторитетность домена; 
● соответствие текста внешних ссылок запросу. 
Точная формула ранжирования и вклад каждого фактора в ней 
нигде не разглашается. Факторов может быть очень много и 
влияние каждого из них минимально.
Индексация. Структура и организация индексов
Индексация. Структура и организация индексов 
Поисковый индекс составляется для того, чтобы избежать 
последовательного просмотра текстов при выполнении каждого 
запроса. 
Самый простой способ - составить бинарную (значения 1 или 0) 
матрицу термин-документ (матрицу инцидентности). 
В матрице инцидентности для каждого документа создается 
запись, в которой указано, содержит ли данный документ термин 
из лексикона (1) или не содержит (0). 
Лексикон - множество терминов коллекции документов.
Матрица инцидентности 
doc1 doc2 doc3 doc4 
term1 1 1 0 1 
term2 0 0 1 1 
term3 0 1 0 1 
term4 1 0 1 0 
При большой размерности такая матрица будет занимать 
слишком много памяти - проще хранить в памяти только единицы.
Инвертированный индекс 
Для каждого термина создается список, в котором указаны 
идентификаторы документов, содержащие данный термин. 
term1 - 1, 2, 4 
term2 - 3, 4 
term3 - 2, 4 
term4 - 1, 3 
Термины могут быть упорядочены по алфавиту, а документы - по 
идентификатору. В списке могут использовать идентификаторы 
документов или их смещения, могут быть указаны дополнительные 
данные (расположение термина, частота). 
Полученный список называется инвертированным индексом 
(словарь + список словопозиций).
Процесс построения инвертированного индекса 
1. Собрать документы, подлежащие индексации. 
2. Разметить текст, преобразуя каждый документ в список лексем 
(последовательность символов, объединенных в 
семантическую единицу для обработки). 
3. Провести предварительную лингвистическую обработку, 
создать список нормализированных лексем, представляющих 
собой индексируемые термины. 
4. Проиндексировать документы, в которых встречается термин, 
создавая инвертированный индекс, состоящий из словаря и 
словопозиций.
Ранжирование
Векторная модель документов и запросов 
Каждый документ и запрос можно представить в виде вектора, 
состоящего из компонент, соответствующих каждому термину в 
словаре, и весов каждого термина, вычисленных, например, по 
формуле: 
tf-idf(t,d)=tf(t,d) x idf(t) 
tf(t,d) - частота термина t в документе d (количество вхождений 
термина t в документ d/термина t в запрос d) 
idf(t) - обратная документная частота (количество документов в 
коллекции, содержащих термин t) 
Принцип подсчета tf и idf может быть разным.
Вычисление ранга документа 
Чтобы определить ранг документа относительно запроса, можно 
найти меру сходства между вектором документа и вектором 
запроса: 
score(q,d)=(V(d),V(q))/(|V(d)| x |V(q)|) 
Данная мера не зависит от схемы подсчета tf и idf.
Базовый алгоритм ранжирования в векторной 
модели 
CosineSqore(q) { 
float Scores[N]=0 
инициализировать Length[N] 
для каждого термина t запроса 
вычислить w(t,q) и извлечь инвертированный список для термина t 
для каждой пары (d, tf(t,d)) в инвертированном списке 
Scores[d] += wf(t,d) x w(t,q) 
прочитать массив Length[d] 
для каждого d 
Scores[d] = Scores[d]/Length[d] 
возвратить наибольшие K компонентов массива Scores[N] 
} 
Scores[N] - содержит релевантность каждого документа запросу 
Length[N] - содержит длины векторов, соответствующих каждому 
из N документов 
wf(t,d), w(t,q) веса термина в документе и в запросе соответственно
Общий ранг 
Общий вклад разных факторов в ранг страницы определяется с 
помощью методов машинного обучения. 
Вычисляется значение каждой переменной в формуле и 
умножается на весовой коэффициент. 
Чтобы получить весовые коэффициенты, формула “обучается” на 
основании экспертной оценки асессоров. 
Далее находится взвешенная комбинация всех факторов 
(например, линейная).
Что такое пауки и как они работают
Разделение обязанностей 
Потоки задач в поисковом роботе можно разделить на несколько 
процессов, каждый из которых выполняется на отдельном узле 
распределенной системы. 
Распределение имеет большое значение для масштабирования 
системы. 
Обязанности разделяются: 
● при сканировании; 
● при индексировании; 
● при анализе ссылок.
Требования к паукам 
Обязательные: 
● устойчивость (к ловушкам в вебе); 
● вежливость (частота обращения к серверу). 
Желательные: 
● распределенность (на многих машинах); 
● масштабируемость (повышение производительности за счет 
добавления новых машин и расширения полосы пропускания); 
● производительность и эффективность (эффективное 
использование доступных ресурсов); 
● качество (преимущество полезным страницам); 
● свежесть (частота охода примерно равна частоте 
обновления); 
● расширяемость (модульная архитектура для расширения по 
разным направлениям).
Базовая схема работы поискового паука 
www 
Скачать 
DNS 
Ан 
ал 
из 
Содержание 
обнаружено? 
Фильтр 
URL 
Разделитель 
хостов 
Удаление 
дубликатов 
URL 
Очередь на скачивание URL 
Контрольные 
суммы 
документов 
Множество 
URL 
Обработка 
Другие узлы 
Словопозиции Инвертор Парсер документа
Узнайте больше об интернет-маркетинге
Принципы работы поисковой системы

More Related Content

PPTX
Word2vec для поискового движка
PPT
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
PDF
кбнти
PPTX
Технологический стек классификации текстов на естественных языках
PPTX
Управление Данными. Лекция 6
PDF
Запуск клуба "Поисковые системы"
PDF
32 - Базы данных. Пространственные индексы
PPT
дипломная презентация по автоматизированным информационным системам
Word2vec для поискового движка
Алгоритмы автоматизированного составления и группировки семантических ядер (Н...
кбнти
Технологический стек классификации текстов на естественных языках
Управление Данными. Лекция 6
Запуск клуба "Поисковые системы"
32 - Базы данных. Пространственные индексы
дипломная презентация по автоматизированным информационным системам

Similar to Принципы работы поисковой системы (20)

PDF
20120226 information retrieval raskovalov_lecture03-04
PDF
20111001 information retrieval raskovalov_lecture2
PDF
20131112федорроманенко
PPT
информационные и информационно поисковые системы интернет
PDF
диплом
PDF
20131105 романенко
PPTX
Как устроен поиск (Андрей Аксёнов)
PPTX
Как устроен поиск
PPT
поисковые системы презентация ученика
PPT
Puple's presentation
PPTX
PPTX
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
PPTX
Про качественный поиск
PPT
Cфинкс и поиск терабайта
PDF
20111002 information retrieval raskovalov_lecture3
PPT
Russir 2010 final
PPT
информатика
PPT
Про качественный поиск (Андрей Аксенов)
PPT
01 информационный поиск
PPT
Введение в информационный поиск
20120226 information retrieval raskovalov_lecture03-04
20111001 information retrieval raskovalov_lecture2
20131112федорроманенко
информационные и информационно поисковые системы интернет
диплом
20131105 романенко
Как устроен поиск (Андрей Аксёнов)
Как устроен поиск
поисковые системы презентация ученика
Puple's presentation
SEO-аналитика: находим, анализируем, используем, усовершенствуем - 07.11.17 -...
Про качественный поиск
Cфинкс и поиск терабайта
20111002 information retrieval raskovalov_lecture3
Russir 2010 final
информатика
Про качественный поиск (Андрей Аксенов)
01 информационный поиск
Введение в информационный поиск
Ad

More from Netpeak (20)

PDF
Кросс-продажи в B2B — нефть вашей воронки. Как увеличить оборот на 40% за сче...
PDF
Контент, который продаёт, повышает узнаваемость и трафик
PDF
Что такое контекстная реклама в Google и как с ней работать?
PDF
Топ 5 важных составляющих круто оптимизированного интернет-магазина
PDF
SEO: коригуй, оптимізуй і просувай
PDF
Email-marketing: экскурс в самый окупаемый инструмент маркетинга
PDF
18 каналов привлечения клиентов
PDF
Как через R коннектор получить данные из Вконтакте в Power BI
PDF
SEO сегодня. Куда дует ветер, что смотреть и на что ориентироваться
PDF
Как сделать рекламу эффективнее с помощью аналитики
PDF
Локальные кампании в Google Ads. Привлекаем пользователей в офлайн с помощью ...
PDF
Как масштабировать проект в мире автоматизации и многоканальности? Кейс Беккер
PDF
Как бесплатное мероприятие может принести деньги digital-агентству?
PDF
Лидогенерация: как работать с воронкой продаж в Google Ads?
PDF
Soft skills и организация их развития
PDF
Как продвигать мобильное приложение в Google Ads? Основы мобильного маркетинга
PDF
SEO на этапе разработки сайта. Оптимизируем сайт еще до появления
PDF
Как вести рекламные кампании в Google Ads в период кризиса? Кейсы Netpeak
PDF
“Подслушивать” звонки менеджера — паранойя или путь к совершенству
PDF
Как работать с API Google Analytics на языке R
Кросс-продажи в B2B — нефть вашей воронки. Как увеличить оборот на 40% за сче...
Контент, который продаёт, повышает узнаваемость и трафик
Что такое контекстная реклама в Google и как с ней работать?
Топ 5 важных составляющих круто оптимизированного интернет-магазина
SEO: коригуй, оптимізуй і просувай
Email-marketing: экскурс в самый окупаемый инструмент маркетинга
18 каналов привлечения клиентов
Как через R коннектор получить данные из Вконтакте в Power BI
SEO сегодня. Куда дует ветер, что смотреть и на что ориентироваться
Как сделать рекламу эффективнее с помощью аналитики
Локальные кампании в Google Ads. Привлекаем пользователей в офлайн с помощью ...
Как масштабировать проект в мире автоматизации и многоканальности? Кейс Беккер
Как бесплатное мероприятие может принести деньги digital-агентству?
Лидогенерация: как работать с воронкой продаж в Google Ads?
Soft skills и организация их развития
Как продвигать мобильное приложение в Google Ads? Основы мобильного маркетинга
SEO на этапе разработки сайта. Оптимизируем сайт еще до появления
Как вести рекламные кампании в Google Ads в период кризиса? Кейсы Netpeak
“Подслушивать” звонки менеджера — паранойя или путь к совершенству
Как работать с API Google Analytics на языке R
Ad

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

  • 1. Принципы работы поисковой системы Алексей Данилин
  • 2. План доклада 1. Как работает современный поиск. 2. Механизмы работы поисковых систем (ПС). 3. Индексация сайтов. Структура и организация индексов. 4. Ранжирование. 5. Что такое пауки и как они работают.
  • 9. Сканирование (Crawling) Сканирование - это сбор страниц в в вебе для их дальнейшего индексирования и поддержки функционирования поисковой системы. Основная цель - быстро и эффективно собрать как можно больше полезных веб-страниц вместе со ссылками, которые их объединяют. Процесс или машина, выполняющий сканирование - crawler. Совет: использовать robots.txt и sitemap.xml для настроек сканирования, устранять битые ссылки, регулировать вложенность страниц, размер страниц, внутреннюю ссылочную структуру.
  • 10. Индексирование (Indexing) Индексирование - процесс создания индекса. Основная цель - построить индекс для дальнейшего осуществления по нему поиска. Процесс или машина, выполняющие индексирование - indexer. После добавления документов в индекс, они начинают участвовать в поиске по соответствующим запросам.
  • 11. Поиск по индексу Поиск по индексу - выбор из индекса документов, соответствующих поисковому запросу. Введенный запрос анализируется (язык, стоп-слова, ошибки) и сопоставляется со всеми документами в базе данных поисковой системы (коллекции). На выходе выдается список всех документов, соответствующих запросу.
  • 12. Ранжирование (Ranking) Ранжирование - присвоение документов ранга (рейтинга) в соответствие с формулой ранжирования и упорядочивание результатов в порядке уменьшения ранга. В формуле ранжирования могут учитываться: ● вес страницы; ● соответствие текста документа запросу (текстовая релевантность); ● авторитетность домена; ● соответствие текста внешних ссылок запросу. Точная формула ранжирования и вклад каждого фактора в ней нигде не разглашается. Факторов может быть очень много и влияние каждого из них минимально.
  • 13. Индексация. Структура и организация индексов
  • 14. Индексация. Структура и организация индексов Поисковый индекс составляется для того, чтобы избежать последовательного просмотра текстов при выполнении каждого запроса. Самый простой способ - составить бинарную (значения 1 или 0) матрицу термин-документ (матрицу инцидентности). В матрице инцидентности для каждого документа создается запись, в которой указано, содержит ли данный документ термин из лексикона (1) или не содержит (0). Лексикон - множество терминов коллекции документов.
  • 15. Матрица инцидентности doc1 doc2 doc3 doc4 term1 1 1 0 1 term2 0 0 1 1 term3 0 1 0 1 term4 1 0 1 0 При большой размерности такая матрица будет занимать слишком много памяти - проще хранить в памяти только единицы.
  • 16. Инвертированный индекс Для каждого термина создается список, в котором указаны идентификаторы документов, содержащие данный термин. term1 - 1, 2, 4 term2 - 3, 4 term3 - 2, 4 term4 - 1, 3 Термины могут быть упорядочены по алфавиту, а документы - по идентификатору. В списке могут использовать идентификаторы документов или их смещения, могут быть указаны дополнительные данные (расположение термина, частота). Полученный список называется инвертированным индексом (словарь + список словопозиций).
  • 17. Процесс построения инвертированного индекса 1. Собрать документы, подлежащие индексации. 2. Разметить текст, преобразуя каждый документ в список лексем (последовательность символов, объединенных в семантическую единицу для обработки). 3. Провести предварительную лингвистическую обработку, создать список нормализированных лексем, представляющих собой индексируемые термины. 4. Проиндексировать документы, в которых встречается термин, создавая инвертированный индекс, состоящий из словаря и словопозиций.
  • 19. Векторная модель документов и запросов Каждый документ и запрос можно представить в виде вектора, состоящего из компонент, соответствующих каждому термину в словаре, и весов каждого термина, вычисленных, например, по формуле: tf-idf(t,d)=tf(t,d) x idf(t) tf(t,d) - частота термина t в документе d (количество вхождений термина t в документ d/термина t в запрос d) idf(t) - обратная документная частота (количество документов в коллекции, содержащих термин t) Принцип подсчета tf и idf может быть разным.
  • 20. Вычисление ранга документа Чтобы определить ранг документа относительно запроса, можно найти меру сходства между вектором документа и вектором запроса: score(q,d)=(V(d),V(q))/(|V(d)| x |V(q)|) Данная мера не зависит от схемы подсчета tf и idf.
  • 21. Базовый алгоритм ранжирования в векторной модели CosineSqore(q) { float Scores[N]=0 инициализировать Length[N] для каждого термина t запроса вычислить w(t,q) и извлечь инвертированный список для термина t для каждой пары (d, tf(t,d)) в инвертированном списке Scores[d] += wf(t,d) x w(t,q) прочитать массив Length[d] для каждого d Scores[d] = Scores[d]/Length[d] возвратить наибольшие K компонентов массива Scores[N] } Scores[N] - содержит релевантность каждого документа запросу Length[N] - содержит длины векторов, соответствующих каждому из N документов wf(t,d), w(t,q) веса термина в документе и в запросе соответственно
  • 22. Общий ранг Общий вклад разных факторов в ранг страницы определяется с помощью методов машинного обучения. Вычисляется значение каждой переменной в формуле и умножается на весовой коэффициент. Чтобы получить весовые коэффициенты, формула “обучается” на основании экспертной оценки асессоров. Далее находится взвешенная комбинация всех факторов (например, линейная).
  • 23. Что такое пауки и как они работают
  • 24. Разделение обязанностей Потоки задач в поисковом роботе можно разделить на несколько процессов, каждый из которых выполняется на отдельном узле распределенной системы. Распределение имеет большое значение для масштабирования системы. Обязанности разделяются: ● при сканировании; ● при индексировании; ● при анализе ссылок.
  • 25. Требования к паукам Обязательные: ● устойчивость (к ловушкам в вебе); ● вежливость (частота обращения к серверу). Желательные: ● распределенность (на многих машинах); ● масштабируемость (повышение производительности за счет добавления новых машин и расширения полосы пропускания); ● производительность и эффективность (эффективное использование доступных ресурсов); ● качество (преимущество полезным страницам); ● свежесть (частота охода примерно равна частоте обновления); ● расширяемость (модульная архитектура для расширения по разным направлениям).
  • 26. Базовая схема работы поискового паука www Скачать DNS Ан ал из Содержание обнаружено? Фильтр URL Разделитель хостов Удаление дубликатов URL Очередь на скачивание URL Контрольные суммы документов Множество URL Обработка Другие узлы Словопозиции Инвертор Парсер документа
  • 27. Узнайте больше об интернет-маркетинге