Полнотекстовый Поиск и Индексация
1. Введение
АРХИВА – это высокопроизводительная поисковая система, проверенная на реальных клиентах с миллиардами сообщений. Она обеспечивает мощные инструменты для индексации и поиска текстовых данных, включая морфологический анализ, работу с синонимами, фильтрацию и ранжирование результатов. Система автоматически извлекает текст из вложений и файлов, обеспечивая полное покрытие всех данных.
2. Основные Возможности
2.1. Индексация Текста
АРХИВА использует обратный индекс, позволяя эффективно обрабатывать большие объемы данных. Индексация включает:
Токенизацию – разбиение текста на слова.
Нормализацию – приведение слов к стандартному виду.
Стемминг и лемматизацию – приведение слов к их корневой форме.
Фильтрацию стоп-слов – исключение незначащих слов.
Извлечение текста из вложений и файлов – поиск осуществляется не только по телу документа, но и по его вложенным файлам (PDF, DOCX, ZIP, EML и другие форматы).
2.2. Типы Поиска
2.2.1. Прямой Поиск
Ищет точное совпадение запроса с индексированными термами.
Пример:
subject:"Отчет по продажам"
– найдет все письма с темой "Отчет по продажам".
2.2.2. Фразовый Поиск
Ищет точные последовательности слов.
Пример:
"финансовый отчет за 2023"
– найдет только те документы, где эта фраза встречается в таком же порядке.
2.2.3. Поиск с Учетом Расстояния
Позволяет находить слова, находящиеся рядом друг с другом.
Пример:
"проект сроки"~5
– найдет документы, где слова "проект" и "сроки" находятся на расстоянии не более пяти слов друг от друга.
2.2.4. Поиск с Учетом Опечаток
Использует алгоритм Левенштейна для обработки ошибок.
Пример:
contakt~
– найдет "contact".
2.2.5. Синонимический Поиск
Позволяет искать слова-заменители.
Пример:
car
– найдет также "automobile".
2.2.6. Поиск с Весами (Boosting)
Позволяет приоритизировать одни термы над другими.
Пример:
отчет^2 продажи
– "отчет" получит удвоенный приоритет.
2.2.7. Поиск по Полям
Позволяет ограничить поиск определенными атрибутами документов.
Пример:
from:johndoe@example.com
– найдет письма от конкретного отправителя.
2.2.8. Логические Операторы
AND – поиск всех слов (
отчет AND продажи
)OR – поиск любого из слов (
отчет OR анализ
)NOT – исключение слова (
отчет NOT черновик
)
2.3. Поиск с Использованием Макросов
Макросы поиска обеспечивают удобный способ поиска конкретных данных и могут использоваться в поиске, правилах хранения и фильтрации представления ролей.
Макрос | Описание | Пример |
---|---|---|
%email% | Адрес электронной почты текущего пользователя | anyaddress:%email% |
%domain% | Домены почты текущего пользователя | anyaddress:%domain% |
%mastercard% | Любой номер кредитной карты MasterCard | body:%mastercard% |
%visa% | Любой номер кредитной карты Visa | body:%visa% |
%amex% | Любой номер кредитной карты American Express | body:%amex% |
%ssn% | Любой номер социального страхования США | body:%ssn% |
%unrecognized% | Все письма с нераспознанными вложениями | attachments:%unrecognized% |
%encrypted% | Все письма с зашифрованными вложениями | body:%encrypted% |
%external% | Соответствует всем внешним доменам | to:%external% |
%internal% | Соответствует всем внутренним доменам | to:%internal% |
%selfmessage% | Все письма, где отправитель совпадает с получателем | selfmessage:1 |
3. Фильтрация и Ранжирование
3.1. Фильтрация по Дате
Ограничение поиска по временным интервалам.
Пример:
date:[20230101 TO 20231231]
– документы за 2023 год.
3.2. Фильтрация по Числовым Диапазонам
Пример:
size:[1000 TO 5000]
– письма размером от 1 до 5 КБ.
4. Интеграция и Масштабирование
АРХИВА поддерживает:
Распределенные кластеры для масштабирования поиска.
Кеширование результатов для ускорения запросов.
Настройку репликации для отказоустойчивости.
5. Заключение
АРХИВА предоставляет мощный и гибкий механизм поиска, позволяя эффективно работать с миллиардами текстовых данных, учитывать морфологию языка, работать с синонимами и фильтрами, а также масштабироваться в распределенных системах.