Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Филиппов / филиппов.docx
Скачиваний:
38
Добавлен:
18.08.2022
Размер:
11.69 Mб
Скачать

Синтаксис

<a href="URL">...</a>

<a name="идентификатор">...</a>

CSS селекторы.

Селектор – часть CSS-правила, сообщающая браузеру, к какому элементу веб-страницы применен стиль.

Извлечение информации из html страницы с помощью библиотеки jsoup.

Метод parse(String html) разбирает входящий HTML в новый объект Document.

Характеристики поискового робота.

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

Обязательные характеристики:

  • Устойчивость

  • Вежливость

Необязательные характеристики:

  • Распределенность

  • Масштабируемость

  • Производительность и эффективность

  • Качество

  • Свежесть

  • Расширяемость

Общая архитектура поискового робота.

  1. Построение индекса.

Однопроходное индексирование.

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

Блочное индексирование.

Блочное индексирование – алгоритм индексирования, похожий на сортировку слиянием. 4 этапа:

  • Сегментация коллекции

  • Сортировка пар «термин-документ»

  • Запись блоков на диск

  • Объединение блоков

Используется, когда коллекция не помещается в память.

Распределенное индексирование.

Распределенное индексирование используется, когда индекс не помещается на диск на одной машине. Индексирование происходит отдельно в каждом блоке документов.

Динамическое индексирование.

Динамическое индексирование – индексирование, при котором при изменении в блоках коллекции или при добавлении новых строится новый индекс.

Удаление объекта из индекса.

Запрос на удаление подается индексу, затем передается на тот блок, в котором нужно провести удаление, затем эта запись из блока удаляется, и снова происходит слияние блоков в памяти.

Организация поиска.

При работе робота поисковой системы копия каждой посещенной страницы сохраняется в БД - кэше поисковой системы. Он состоит из:

  • кэша документов, в котором хранится индекс.

  • Кэша запросов, в котором хранятся блоки коллекции.

  • Кэша полей, в котором хранится журнал предзаписи (WAL). В нем отражаются все изменения и удаления записей из блоков коллекции.

  1. Библиотека Lucene.

Lucene – свободная библиотека для полнотекстового поиска, используемая в качестве основы в 2 самых популярных (на 2010 г.) поисковых системах - Elasticsearch и Solr. Написана на Java. Её особенности:

  • Легко масштабируется

  • Компактность

  • Высокая скорость работы

  • Высокая скорость индексации

  • Эффективные алгоритмы поиска

  • Поиск по полю

  • Сортировка по любому полю

Lucene основные концепции.

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

Типы полей.

  • Индексированное поле - оно определяет, будет ли построен индекс по этому полю. По таким полям возможна сортировка и поиск.

  • Хранимое поле – определяет, попадет ли поле в хранилище документов и нужно ли это значение в поиске.

  • Токенизированное поле – определяет, нужна ли доп. обработка значения.

Создание индекса.

Индекс состоит из инвертированного индекса и хранилища документов.

Создание документа.

Документ – это список полей, в котором нет ограничений на повторяемость имени и которому при индексировании присваивается docID.

Управление индексом.

Индексация документа - analyzer, tokenizer, token filter.

Analyzer – элемент с дочерними элементами, которые называют фабричные классы для токенизатора и используемые фильтры в том порядке, в котором они описаны.

Tokenizer – токенизатор, описываемый в начале анализатора. Типы:

  • StandardTokenizer – разбивает предложение на слова.

  • KeywordTokenizer – обрабатывает всё текстовое поле как один токен.

  • PatternTokenizer – использует регулярное выражение для разбиения текстового потока на токены.

Типы фильтров:

  • LowerCaseFilter – приводит к нижнему регистру

  • StopFilter – удаляет стоп-слова.

  • EnglishMinimalStemFilter – приводит слово к основе

  • NGramTokenFilter – N-граммы вместо слов.

Запросы.

Запрос – набор ключевых слов со знаками логических операций.

TermQuery, BooleanQuery и т.д.

Типы запросов:

  • TermQuery – наличие токена в документе.

  • BooleanQuery – условие на основе других запросов.

  • TermRangeQuery – диапазон текстовых токенов.

  • NumericRangeQuery – числовой диапазон

  • FuzzyQuery – поиск с неточным соответствием.

  • PhraseQuery – поиск по последовательности ключевых слов.

  • RegexQuery – поиск по регулярному выражению.

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

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

Соседние файлы в папке Филиппов