Назад к подготовке

Как разделить suggest и свободный поиск по статьям

В продукте есть база статей. Пользователь может видеть подсказки или задавать свободный вопрос. Как разделить эти два режима в дизайне поиска?

Ответить самому

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

Загрузка

Короткий ответ

Suggest заранее предлагает короткие запросы или статьи, а free-text search отвечает на конкретный intent пользователя. У них разные triggers, candidates, metrics и latency budget.

Полный разбор

Suggest работает до того, как пользователь сформулировал полный вопрос. Он может показывать популярные темы, FAQ, короткие вопросы из заголовков и персонализированные подсказки по контексту страницы. Такие candidates часто считаются заранее и обновляются batch-процессом.

Свободный поиск стартует после ввода текста. Система нормализует запрос, ищет статьи или чанки, ранжирует кандидатов и может собрать ответ поверх найденного контекста. Здесь важны recall релевантной статьи, качество порядка, понятная выдача и latency ответа.

Разделение помогает не смешивать метрики. Для suggest команда смотрит usage, acceptance rate и downstream success. Для free-text search команда смотрит relevance labels, click/success, reformulation rate, time-to-answer, fallback и качество ответа, если включен RAG.

Теория

Suggest и search часто используют похожие индексы, но решают разные продуктовые задачи. В MLSD это нужно отделить до выбора модели.