Архивная деятельность высшего учебного заведения связана с приемом, учетом, хранением, поиском и предоставлением документов по внутренним и внешним запросам. В архивные фонды поступают учебно-методические, кадровые, организационно-распорядительные, научные и иные документы, часть которых имеет длительные сроки хранения и используется для подтверждения юридически значимых фактов.
С ростом объема архивных фондов повышаются требования к скорости и точности поиска документов. Сотрудникам архива необходимо работать с большим количеством карточек, описей, электронных копий и сканированных материалов. При этом поиск осложняется неполными метаданными, различиями в формулировках, ошибками распознавания текста и разными форматами хранения документов.
Традиционные механизмы поиска позволяют находить документы по реквизитам или точным текстовым совпадениям. Однако в архивной практике пользователь не всегда знает точное название документа, его номер или дату. Запрос может быть сформулирован по смыслу, а не по конкретным словам, содержащимся в документе. В таких условиях одного полнотекстового поиска недостаточно.
Цель статьи заключается в описании гибридного механизма поиска архивных документов, объединяющего полнотекстовый поиск PostgreSQL и семантический поиск на основе векторных представлений документов. Предлагаемый подход направлен на повышение релевантности выдачи и сокращение времени поиска нужных архивных материалов.
Одной из основных задач электронного архива является обеспечение быстрого и точного доступа к документам. В вузовском архиве эта задача имеет особое значение, поскольку документы используются для внутреннего учета, подготовки справок, подтверждения фактов обучения и трудовой деятельности, выдачи копий и обработки других запросов пользователей.
Поиск по реквизитам эффективен в тех случаях, когда известны точные сведения о документе. Однако на практике запросы часто формулируются неполно. Пользователь может знать только содержание документа или примерную тематику, но не знать его точные реквизиты. В результате поиск только по карточкам документов не всегда обеспечивает нужную полноту выдачи.
Полнотекстовый поиск расширяет возможности системы, поскольку позволяет искать по словам и выражениям, содержащимся в названии, реквизитах и распознанном тексте документа. При этом такой поиск зависит от лексического совпадения между запросом и текстом. Если пользователь использует одну формулировку, а в документе содержится другая, но близкая по смыслу, релевантный документ может не попасть в результаты.
Дополнительным ограничением является качество распознанного текста. В архиве могут храниться не только электронные документы, но и сканированные копии бумажных материалов. После OCR-обработки в тексте возможны ошибки. Поэтому для работы с архивными документами требуется механизм, который учитывает не только точные совпадения слов, но и смысловую близость между запросом и содержанием документа.
Для решения проблемы разработан гибридный механизм поиска. Он объединяет два подхода: полнотекстовый поиск по словам и реквизитам и семантический поиск на основе векторных представлений документов. Такое сочетание позволяет использовать преимущества обоих методов.
Полнотекстовый поиск реализован средствами PostgreSQL. Для каждого документа в базе данных хранится текстовое представление, полученное из электронного файла или после OCR-распознавания сканированного документа. На основе названия, реквизитов и распознанного текста формируется поисковый вектор search_vector типа tsvector. При выполнении запроса пользовательская строка преобразуется в поисковое выражение PostgreSQL и сопоставляется с данным вектором. Этот механизм особенно эффективен, когда пользователь знает конкретные данные документа: название, номер, дату, подразделение или ключевые слова .
Семантический поиск реализован на основе векторных представлений документов. После получения текстового содержимого документа формируется его эмбеддинг с использованием модели Sentence-BERT. Эмбеддинг представляет собой числовой вектор фиксированной размерности, отражающий смысловое содержание текста. Полученные векторы сохраняются в таблице embeddings базы данных PostgreSQL с использованием расширения pgvector. При выполнении поиска пользовательский запрос также преобразуется в векторное представление, после чего выполняется сравнение вектора запроса с векторами документов.
Для определения степени смысловой близости между запросом и документом используется косинусная мера сходства:
cos(A, B) = (A · B) / (||A|| · ||B||)
где A и B — сравниваемые векторы; A · B — скалярное произведение векторов; ||A|| и ||B|| — длины, или нормы, соответствующих векторов.
Значение косинусного сходства показывает, насколько близки вектор запроса и вектор документа. Значение, близкое к 1, указывает на высокую смысловую близость; значение, близкое к 0, означает слабую связь между текстами; отрицательные значения указывают на противоположную направленность векторов. Чем выше значение сходства, тем более релевантным считается документ.
Гибридный поиск выполняется путем объединения результатов полнотекстового и семантического поиска. На первом этапе система выполняет полнотекстовый поиск по search_vector и определяет документы с точными текстовыми совпадениями. На втором этапе для того же запроса формируется эмбеддинг, после чего выполняется семантический поиск по векторам документов, сохраненным с использованием pgvector. В результате формируются два набора найденных документов.
На следующем этапе результаты объединяются. Если один и тот же документ найден обоими методами, он получает более высокий приоритет, поскольку соответствует запросу одновременно по текстовому совпадению и по смысловой близости. Документы, найденные только одним методом, также включаются в итоговую выдачу, однако их релевантность определяется по соответствующему показателю: текстовой релевантности для полнотекстового поиска или косинусному сходству для семантического поиска.
Итоговая выдача сортируется по степени релевантности. В пользовательском интерфейсе найденные документы отображаются в виде списка с указанием типа совпадения и уровня релевантности. Такой подход позволяет находить документы как по прямым совпадениям в тексте, так и по смысловой близости, что особенно важно при работе с большими архивными фондами, неполными метаданными и различными формулировками пользовательских запросов.
Гибридный механизм поиска обеспечивает более гибкий и точный доступ к архивным документам. Полнотекстовый поиск сохраняет эффективность при работе с точными реквизитами и ключевыми словами, а семантический поиск расширяет возможности системы за счет учета смыслового содержания документа.
Объединение результатов двух методов позволяет повысить релевантность выдачи и снизить вероятность пропуска документа, близкого к запросу по смыслу. Следовательно, предложенный подход может быть использован как один из ключевых элементов интеллектуализированной системы электронного архива вуза.
Литература:
- Балдин, А. Обработка архивной информации в цифровом университете / А. Балдин, Д. Елисеев. — Текст: непосредственный // ITM Web of Conferences. — 2020. — № 35.
- Векторный поиск внутри PostgreSQL: что умеет и где может пригодиться pgvector. — Текст: электронный // Хабр: [сайт]. — URL: https://habr.com/ru/companies/selectel/articles/920824/ (дата обращения: 11.06.2026).
- Как мы внедрили векторный поиск в Postgres Pro. — Текст: электронный // Хабр: [сайт]. — URL: https://habr.com/ru/companies/postgrespro/articles/919552/ (дата обращения: 11.06.2026).

