Структура индексов
1. Структура индекса
Поисковый индекс: Структура данных, хранящая информацию о документах и используемая в поисковых системах.
Индексирование: Процесс сбора, сортировки и хранения данных с целью обеспечения быстрого и точного поиска информации.
Интердисциплинарность: Создание индекса включает понятия из различных областей, таких как лингвистика, когнитивная психология, математика, информатика и физика.
2. Виды роботов
Веб-индексирование: Процесс индексирования в контексте поисковых машин, разработанных для поиска веб-страниц в Интернете.
Полнотекстовая индексация: Фокусируется на индексации документов, написанных на естественных языках, включая мультимедийные документы, такие как видео, аудио и графика.
Метапоисковые машины: Используют индексы других поисковых сервисов и не хранят локальный индекс.
Частично-текстовые сервисы: Ограничивают глубину индексации для уменьшения размера индекса.
Поисковые машины, основанные на агентах: Строят индекс в реальном времени, обновляя его непрерывно.
Индексация
Цель использования индекса — повышение скорости поиска релевантных документов по поисковому запросу.
Без индекса поисковая машина должна была бы сканировать каждый документ в корпусе, что потребовало бы большого количества времени и вычислительной мощности.
Пример: индекс 10 000 документов может быть опрошен в пределах миллисекунд, в то время как последовательный просмотр каждого слова в 10 000 больших документах мог бы занять часы.
Дополнительная память, выделяемая для хранения индекса, и увеличение времени, требуемое для обновления индекса, компенсируется уменьшением времени на поиск информации.
Факторы, влияющие на проектирование поисковых систем
Факторы слияния:
Как данные входят в индекс?
Как слова и подчиненные функции добавляются в индекс во время текстового корпусного обхода?
Могут ли несколько поисковых роботов работать асинхронно?
Слияние индекса поисковой системы подобно SQL Merge и другим алгоритмам слияния.
Методы хранения:
Определение вида хранимой информации: сжатый или отфильтрованный.
Размер индекса:
Сколько памяти компьютера необходимо, чтобы поддерживать индекс.
Скорость поиска:
Как быстро можно найти слово в инвертированном индексе.
Хранение:
Как хранится индекс в течение длительного времени.
Отказоустойчивость:
Вопросы отказоустойчивости включают проблему повреждения индекса, определяя, можно ли отдельно рассматривать некорректные данные, связанные с плохими аппаратными средствами, секционированием и схемами на основе хеш-функций и композитного секционирования, а также репликацией.
Индексные структуры данных
Суффиксное дерево:
Структурировано как дерево, поддерживает линейное время поиска.
Используется для поиска по шаблону в последовательностях ДНК и кластеризации.
Инвертированный индекс:
Хранилище списка вхождений каждого критерия поиска.
Индекс цитирования:
Хранилище цитат или гиперссылок между документами для поддержки анализа цитирования.
N-грамма:
Хранилище последовательностей длин данных для поддержки других типов поиска или анализа текста.
Матрица термов документа:
Используется в латентно-семантическом анализе (ЛСА), хранит вхождения слов в документах в двумерной разреженной матрице.
Анализ формата документа
Если поисковая система поддерживает множество форматов документов, то документы должны быть подготовлены для токенизации.
Проблема: некоторые форматы документов содержат информацию о форматировании в дополнение к текстовому содержанию.
Примеры форматов файлов: HTML, ASCII текстовые файлы, PDF, PostScript, LaTeX, Usenet формат новостных интернет-серверов, XML, SGML, форматы мультимедийных метаданных (ID3), Microsoft Word, Excel, PowerPoint, IBM Lotus Notes.
Некоторые форматы файлов могут быть сжатыми или зашифрованными, что требует дополнительных шагов при индексации.
Примеры злоупотребления форматированием документа в веб-спаме, такие как скрытые тексты с использованием тегов форматирования или скрытие слов путем установки цвета шрифта таким же, как цвет фона.
Индексация
Цель использования индекса — повышение скорости поиска релевантных документов по поисковому запросу.
Без индекса поисковая машина должна была бы сканировать каждый документ в корпусе, что потребовало бы большого количества времени и вычислительной мощности.
Пример: индекс 10 000 документов может быть опрошен в пределах миллисекунд, в то время как последовательный просмотр каждого слова в 10 000 больших документах мог бы занять часы.
Дополнительная память, выделяемая для хранения индекса, и увеличение времени, требуемое для обновления индекса, компенсируется уменьшением времени на поиск информации.
Факторы, влияющие на проектирование поисковых систем
Факторы слияния:
Как данные входят в индекс?
Как слова и подчиненные функции добавляются в индекс во время текстового корпусного обхода?
Могут ли несколько поисковых роботов работать асинхронно?
Слияние индекса поисковой системы подобно SQL Merge и другим алгоритмам слияния.
Методы хранения:
Определение вида хранимой информации: сжатый или отфильтрованный.
Размер индекса:
Сколько памяти компьютера необходимо, чтобы поддерживать индекс.
Скорость поиска:
Как быстро можно найти слово в инвертированном индексе.
Хранение:
Как хранится индекс в течение длительного времени.
Отказоустойчивость:
Вопросы отказоустойчивости включают проблему повреждения индекса, определяя, можно ли отдельно рассматривать некорректные данные, связанные с плохими аппаратными средствами, секционированием и схемами на основе хеш-функций и композитного секционирования, а также репликацией.
Индексные структуры данных
Суффиксное дерево:
Структурировано как дерево, поддерживает линейное время поиска.
Используется для поиска по шаблону в последовательностях ДНК и кластеризации.
Инвертированный индекс:
Хранилище списка вхождений каждого критерия поиска.
Индекс цитирования:
Хранилище цитат или гиперссылок между документами для поддержки анализа цитирования.
N-грамма:
Хранилище последовательностей длин данных для поддержки других типов поиска или анализа текста.
Матрица термов документа:
Используется в латентно-семантическом анализе (ЛСА), хранит вхождения слов в документах в двумерной разреженной матрице.
Анализ формата документа
Если поисковая система поддерживает множество форматов документов, то документы должны быть подготовлены для токенизации.
Проблема: некоторые форматы документов содержат информацию о форматировании в дополнение к текстовому содержанию.
Примеры форматов файлов: HTML, ASCII текстовые файлы, PDF, PostScript, LaTeX, Usenet формат новостных интернет-серверов, XML, SGML, форматы мультимедийных метаданных (ID3), Microsoft Word, Excel, PowerPoint, IBM Lotus Notes.
Некоторые форматы файлов могут быть сжатыми или зашифрованными, что требует дополнительных шагов при индексации.
Примеры злоупотребления форматированием документа в веб-спаме, такие как скрытые тексты с использованием тегов форматирования или скрытие слов путем установки цвета шрифта таким же, как цвет фона.
Распознавание раздела
Некоторые поисковые системы включают распознавание раздела, определяя основные части документа до токенизации.
Некоторые документы, такие как новостные рассылки и корпоративные отчеты, содержат ошибочное содержание и боковые блоки, в которых нет основного материала.
Проблемы:
Содержание в различных разделах рассматривается как связанное с индексом, хотя в действительности это не так.
Дополнительное содержание "боковой панели" включено в индекс, но не способствует реальной значимости документа.
Для анализа раздела может потребоваться реализация логики визуализации каждого документа и индексация представления вместо самого документа.
Индексация метатегов
Некоторые документы содержат встроенные метаданные, такие как автор, ключевые слова, описание и язык.
Метатеги в HTML-страницах содержат ключевые слова, которые также индексируются.
В процессе развития Интернета индексация метатегов была важной, когда полнотекстовая индексация была недоступна из-за ограничений аппаратного обеспечения.
С развитием полнотекстовой индексации метатеги стали менее важными для ранжирования результатов, но все еще могут использоваться для специализированных поисковых запросов или для локального поиска.
Поисковые роботы
Поисковый робот, также известный как паук или краулер, это программа поисковой системы, которая сканирует сайты.
Роботы отправляют HTTP-запросы GET для считывания документов и сохраняют их для последующей обработки.
Роботы не обрабатывают документы напрямую, они лишь считывают и сохраняют их, а обработка происходит другими программами.
Роботы также могут учитывать файл robots.txt и обрабатывать исключения для роботов.
Например, роботы могут учитывать файл robots.txt для определения страниц, которые не должны быть индексированы, чтобы не нарушать правила сайта.
Виды поисковых роботов:
Google:
Основной робот-индексатор, представляющий себя как Googlebot, занимается сканированием HTML-страниц для основного поиска Google.
Есть также робот, отвечающий за сканирование изображений с сайта.
Для мобильной версии поиска существуют отдельные боты, каждый из которых совместим с определенной моделью мобильного телефона.
Яндекс:
Основной индексирующий робот Яндекса, названный YandexBot, сканирует HTML-страницы и другие документы для индексации.
Робот-сканер изображений, который сканирует графику разных форматов для поиска в картинках.
Есть отдельные боты для выполнения специальных функций, таких как:
Робот-«зеркальщик», который периодически проверяет совпадение главной страницы сайта при обращении к домену с www. и без, а также проверяет параллельные домены-«зеркала» на совпадение.
Сборщик иконок favicon.ico, который периодически запрашивает иконку favicon.ico для отображения в поисковой выдаче рядом со ссылкой на сайт.
Проверочный бот для новых сайтов, который работает при добавлении сайта в форму AddURL, чтобы определить, существует ли сайт и разрешен ли доступ к главной странице.
Робот Рамблера:
В настоящее время робот Рамблера уже не активен, поскольку Рамблер использует поиск Яндекса.
Робот-индексатор Рамблера можно было легко идентифицировать в логах по полю User-agent, которое выглядело как StackRambler/2.0 (MSIE incompatible).
По сравнению с роботами из других поисковых систем этот бот казался более простым, поскольку не указывал список медиатипов в запросах, не содержал поля Accept-Language и If-Modified-since.
Робот Mail.Ru:
Информации о роботе Mail.Ru пока мало. Портал Mail.Ru ведет разработку собственного поиска, но запуск этого поиска не произошел.
Наименование бота в User-agent выглядит как Mail.Ru/2.0 (ранее — Mail.Ru/1.0).
Предполагается, что в файле robots.txt следует использовать наименование бота Mail.Ru.
Прочие роботы:
Помимо двух основных поисковых систем, существуют и другие роботы, такие как робот Bing от Microsoft и другие.
Например, в Китае есть национальная поисковая система Baidu, но ее робот редко доходит до русскоязычных сайтов.
В последнее время также появилось много сервисов, которые не являются поисковыми системами, но также сканируют сайты, например, сервис solomono.
Ценность передачи информации о сайте таким сервисам может быть сомнительной, поэтому их роботов можно запретить в файле .htaccess, чтобы снизить нагрузку на сервер.
Возможные вопросы
Last updated
Was this helpful?