Ранжирование brain-поиска (brain_search)
Локальные совпадения используют SQLite FTS5 bm25 (brain_search.search_local): чем меньше score, тем выше релевантность.
Когда MCP-инструмент передаёт prefer_stack (список строк, например python, react):
- Локальный путь может вернуть до
min(limit × 5, 100)кандидатов, чтобы сильное совпадение по стэку не было отброшено до реранжирования. - После слияния с опциональными Notion-fallback-результатами список сортируется по эффективному score
effective = bm25_score − stack_boost, гдеstack_boostрастёт, когда JSON-полеstackстроки пересекается с предпочтительной меткой (точное совпадение или подстрока). Boost ограничен сверху, чтобы для далёких совпадений по-прежнему доминировал bm25. - Финальный список усекается до
limit.
Пустой или состоящий только из пробелов query: обработчики возвращают немедленное сообщение; search_with_fallback возвращает отсутствие результатов и предупреждение о том, что запрос пуст.