Первое, что делает пользователь, — формулирует вопрос.
Например:
Как настроить резервное копирование PostgreSQL?
Для человека этот вопрос понятен, но для поисковой системы он может быть недостаточно оптимальным. Почему? Потому что пользователь формулирует вопрос с точки зрения своей задачи, а система поиска должна найти документы. Это не всегда одно и то же.
Проблема естественного языка
Рассмотрим несколько вариантов:
Как сделать backup базы?
Как настроить резервирование PostgreSQL?
Процедура создания резервной копии БД
Postgres backup configuration
Человек понимает, что речь идет об одном и том же. но разные системы поиска могут воспринимать эти запросы совершенно по-разному. Особенно это заметно в больших корпоративных базах.
Документ может называться:
Database Recovery Procedure v3.5
Хотя пользователь никогда не использует слово «Recovery».
Query Rewrite
Поэтому современные RAG-системы часто используют дополнительный этап:
переписывание запроса.
Система сначала анализирует вопрос пользователя и создает более подходящую поисковую форму.
Например:
Пользователь:
Как вернуть базу после сбоя?
Система преобразует:
Database recovery procedure
PostgreSQL restore
Backup recovery steps
Disaster recovery documentation
После этого поиск становится эффективнее.
Multi Query Retrieval
Еще более мощный вариант — создание нескольких поисковых запросов.
Например:
Исходный вопрос:
Почему сервер медленно работает?
Модель может создать:
CPU performance troubleshooting
Memory pressure analysis
Linux system monitoring
Server bottleneck investigation
Затем каждый запрос используется отдельно, результаты объединяются.
Такой подход называется: Multi Query Retrieval