Аннотация:
Рассматривается задача полнотекстового поиска с учетом близости в больших текстовых массивах. Пользователь вводит несколько слов в качестве поискового запроса. В результате поиска формируется список документов, содержащих заданные слова. В современных поисковых системах, документы, в которых слова поискового запроса встречаются вблизи, считаются более релевантными. Рассматриваемая задача требует сохранения в индексе информации о каждом вхождении каждого слова в индексируемых текстах. Скорость выполнения поискового запроса зависит от числа вхождений слов запроса в текстах. Следовательно, запросы, включающие часто встречающиеся слова, выполняются существенно медленнее, чем запросы, состоящие из обычных слов. Для каждого слова текста сохраняем в индексах информацию о часто встречающихся словах, которые располагаются в тексте рядом с ним, на расстоянии не более $MaxDistance$. Данный параметр может принимать значения 5, 7 и даже больше. Применение индексов с трехкомпонентными ключами позволяет добиться быстрого выполнения поисковых запросов. Результаты экспериментов поиска, представленные автором ранее, показывают, что среднее время поискового запроса, состоящего из очень часто встречающихся слов, при применении индексов с трехкомпонентными ключами, меньше в 94.7 раза, чем среднее время поиска с использованием обычных инвертированных индексов. В текущей работе рассмотрен новый алгоритм создания индекса с трехкомпонентными ключами. Доказана корректность алгоритма. Представлены результаты экспериментов построения индексов для разных значений параметра $MaxDistance$.
Ключевые слова:полнотекстовый поиск, поисковые системы, инвертированные файлы, дополнительные индексы, поиск с учетом близости слов, индексы с трехкомпонентными ключами.