LEM.RU · 2026

Методы · 11 мин

Почему разные виды поиска решают разные задачи

Когда нужен точный термин, когда смысл, а когда реальные связи кода.

Когда разработчик спрашивает «как восстановиться после таймаута», в вопросе нет имени процедуры, кода ошибки или файла. Один вид поиска здесь не может одновременно понять намерение, найти точную строку и доказать связь кода.

Точный, смысловой и структурный поиск не конкурируют: каждый сокращает свою часть пути от вопроса к проверяемому источнику.
01

Точный поиск отвечает на вопрос «где написано именно это»

Он лучше всего работает с именем процедуры, полем JSON, кодом ошибки или устойчивой фразой стандарта. Результат прозрачен: совпавшая строка действительно существует в источнике.

Но точный поиск не понимает перефразирование. Запрос «не создать дубль после обрыва связи» не обязан встретиться в документе, где правило называется идемпотентностью.

02

Смысловой поиск находит намерение, но возвращает кандидатов

Смысловой поиск сравнивает не только слова, но и близость содержания. Поэтому он способен поднять стандарт безопасного повтора по вопросу о таймауте, даже если формулировки различаются.

Это помогает начать чтение, но не превращает найденный фрагмент в доказанный ответ. Кандидат нужно открыть, проверить координату версии и сопоставить с вопросом. Например, вопрос «как сохранить дубли и исходный порядок ссылок в ТаблицаЗначений» может привести к правилу пакетного чтения БСП. Дальше нужно открыть контракт выбранной версии и проверить, как восстанавливается порядок; публичный Route Delivery этого правила БСП не содержит.

03

Структурный поиск работает с процедурами, функциями и связями

Когда известно имя программного элемента, запрос по символу — так LEM называет индексируемую процедуру или функцию — показывает определение, сигнатуру и координаты. В проектном корпусе граф помогает перейти к вызывающим участкам и области влияния.

В библиотечном корпусе наружный интерфейс уже: доступны сведения о символе и отдельные Exact-факты, но не полный обход графа.

Один вопрос — четыре выходаВыходы нельзя подменять друг другом: релевантность ещё не означает доказательство.
01Точный текст

Строка, код ошибки или имя поля.

02Смысл

Документы, близкие намерению вопроса.

03Символ

Определение процедуры или функции.

04Exact

Повторно открываемый фрагмент или точечная связь.

04

Класс результата нужно называть в самом ответе

Полезный ответ отмечает, что именно найдено: текстовое совпадение, смысловой кандидат, определение процедуры или точный факт. Тогда другой разработчик понимает, можно ли уже опираться на результат или требуется следующий шаг.

05

Разобрать ROUTE-409-DUPLICATE по слоям

Задача: после повторного запроса сервис вернул ROUTE-409-DUPLICATE. Текстовый поиск по коду ошибки находит описание симптома. Смысловой поиск по фразе «не создать дубль» приводит к правилу идемпотентности. Поиск символа показывает функцию обработки ответа. Это три разных источника, а не три подтверждения одного вывода.

Решение в публичном демо — назвать правило повторного использования исходного ключа и указать версию каждого источника. Нельзя из одного кода ошибки заключить, что отправление уже создано в конкретной системе: её фактическое состояние проверяется отдельно. Для такого вывода нужен ответ сервиса или проектный тест.

Синтетический пример

Разобрать конфликт ROUTE-409-DUPLICATE

Один синтетический вопрос проходит через несколько видов поиска, и каждый добавляет отдельную часть ответа.

  1. Точный поиск находит код ROUTE-409-DUPLICATE.
  2. Смысловой поиск поднимает правило идемпотентности и рецепт диагностики.
  3. Поиск символа открывает процедуру обработки ошибки.
  4. Exact используется только там, где существует подтверждённый статический факт.

Порядок выдачи и тексты запросов демонстрационные; числовая оценка качества поиска ещё не проводилась.

Граница доказательства

Что уже можно утверждать, а что нужно проверить

Подтверждено материалом
  • Наружная библиотечная демонстрация разделяет list, search, symbol и Exact.
  • Разные классы результата имеют разную доказательную силу.
Проверяется в конкретном контуре
  • Полноту выдачи на конкретном вопросе.
  • Актуальность версии каждого найденного источника.