|
Модуль индексирования
Модуль индексирования предназначен для обработки текстовых данных и создания индексов, необходимых для быстрого поиска нужных документов по ключевым словам. Модуль индексирования выполняет следующие функции:
- взаимодействие с хранилищем и извлечение документов из него;
- удаление из текста документа знаков препинания, разметки а также другой ненужной информации;
- разбитие строк на отдельные лексемы и определение координат (позиций) каждого слова в тексте;
- морфологический анализ слов;
- построение обратного индекса для поиска и прямого, если нужна подсветка найденных слов.
Работа модуля индексирования построена следующим образом.
- На вход модуля поступает документ, из которого извлекаются атрибуты новости.
- Затем из документа убирается информация, не несущая смысловой нагрузки (знаки препинания, тэги и т.д.). В том случае, если нужно индексировать документ, содержащий HTML-разметку, его содержимое пропускается через HTML-фильтр.
- Определяется кодировка (Win, Koi, Dos, ISO, Mac) уже "очищенного" документа, после чего этот документ подписывается электронной подписью.
- В таблицу документов помещается заголовок обрабатываемого документа и его адрес.
- Документ разбивается на текстовые блоки, представляющие собой строки символов определенной (или заданной) длины, после чего из каждого блока извлекаются лексемы, причем для каждой такой лексемы определяется позиция в документе. С помощью морфологического модуля каждому слову сопоставляется необходимая морфологическая информация, в результате чего это слово приводится к лемме (нормальной форме).
- Для того, чтобы подсвечивать найденные слова и показывать в результатах поиска релевантные фрагменты текста, сохраняются все текстовые блоки документа и создается прямой индекс, куда заносится информацию о координатах каждого слова в тексте.
- Формируется предварительный индекс, содержащий все обработанные слова в нормальной форме и их координаты в тексте.
- По окончании индексации модуль индексирования заменяет текущую рабочую версию индекса новой в режиме замещения или выстраивает новую в режиме построения индексов.
|