Методы · 11 мин
Почему разные виды поиска решают разные задачи
Когда нужен точный термин, когда смысл, а когда реальные связи кода.
Когда разработчик спрашивает «как восстановиться после таймаута», в вопросе нет имени процедуры, кода ошибки или файла. Один вид поиска здесь не может одновременно понять намерение, найти точную строку и доказать связь кода.
Точный, смысловой и структурный поиск не конкурируют: каждый сокращает свою часть пути от вопроса к проверяемому источнику.
Точный поиск отвечает на вопрос «где написано именно это»
Он лучше всего работает с именем процедуры, полем JSON, кодом ошибки или устойчивой фразой стандарта. Результат прозрачен: совпавшая строка действительно существует в источнике.
Но точный поиск не понимает перефразирование. Запрос «не создать дубль после обрыва связи» не обязан встретиться в документе, где правило называется идемпотентностью.
Смысловой поиск находит намерение, но возвращает кандидатов
Смысловой поиск сравнивает не только слова, но и близость содержания. Поэтому он способен поднять стандарт безопасного повтора по вопросу о таймауте, даже если формулировки различаются.
Это помогает начать чтение, но не превращает найденный фрагмент в доказанный ответ. Кандидат нужно открыть, проверить координату версии и сопоставить с вопросом. Например, вопрос «как сохранить дубли и исходный порядок ссылок в ТаблицаЗначений» может привести к правилу пакетного чтения БСП. Дальше нужно открыть контракт выбранной версии и проверить, как восстанавливается порядок; публичный Route Delivery этого правила БСП не содержит.
Структурный поиск работает с процедурами, функциями и связями
Когда известно имя программного элемента, запрос по символу — так LEM называет индексируемую процедуру или функцию — показывает определение, сигнатуру и координаты. В проектном корпусе граф помогает перейти к вызывающим участкам и области влияния.
В библиотечном корпусе наружный интерфейс уже: доступны сведения о символе и отдельные Exact-факты, но не полный обход графа.
Строка, код ошибки или имя поля.
Документы, близкие намерению вопроса.
Определение процедуры или функции.
Повторно открываемый фрагмент или точечная связь.
Класс результата нужно называть в самом ответе
Полезный ответ отмечает, что именно найдено: текстовое совпадение, смысловой кандидат, определение процедуры или точный факт. Тогда другой разработчик понимает, можно ли уже опираться на результат или требуется следующий шаг.
Разобрать ROUTE-409-DUPLICATE по слоям
Задача: после повторного запроса сервис вернул ROUTE-409-DUPLICATE. Текстовый поиск по коду ошибки находит описание симптома. Смысловой поиск по фразе «не создать дубль» приводит к правилу идемпотентности. Поиск символа показывает функцию обработки ответа. Это три разных источника, а не три подтверждения одного вывода.
Решение в публичном демо — назвать правило повторного использования исходного ключа и указать версию каждого источника. Нельзя из одного кода ошибки заключить, что отправление уже создано в конкретной системе: её фактическое состояние проверяется отдельно. Для такого вывода нужен ответ сервиса или проектный тест.
Разобрать конфликт ROUTE-409-DUPLICATE
Один синтетический вопрос проходит через несколько видов поиска, и каждый добавляет отдельную часть ответа.
- Точный поиск находит код ROUTE-409-DUPLICATE.
- Смысловой поиск поднимает правило идемпотентности и рецепт диагностики.
- Поиск символа открывает процедуру обработки ошибки.
- Exact используется только там, где существует подтверждённый статический факт.
Порядок выдачи и тексты запросов демонстрационные; числовая оценка качества поиска ещё не проводилась.
Что уже можно утверждать, а что нужно проверить
- Наружная библиотечная демонстрация разделяет list, search, symbol и Exact.
- Разные классы результата имеют разную доказательную силу.
- Полноту выдачи на конкретном вопросе.
- Актуальность версии каждого найденного источника.