Skip to content

Ранжирование brain-поиска (brain_search)

Локальные совпадения используют SQLite FTS5 bm25 (brain_search.search_local): чем меньше score, тем выше релевантность.

Когда MCP-инструмент передаёт prefer_stack (список строк, например python, react):

  1. Локальный путь может вернуть до min(limit × 5, 100) кандидатов, чтобы сильное совпадение по стэку не было отброшено до реранжирования.
  2. После слияния с опциональными Notion-fallback-результатами список сортируется по эффективному score
    effective = bm25_score − stack_boost, где stack_boost растёт, когда JSON-поле stack строки пересекается с предпочтительной меткой (точное совпадение или подстрока). Boost ограничен сверху, чтобы для далёких совпадений по-прежнему доминировал bm25.
  3. Финальный список усекается до limit.

Пустой или состоящий только из пробелов query: обработчики возвращают немедленное сообщение; search_with_fallback возвращает отсутствие результатов и предупреждение о том, что запрос пуст.