Проблема Или Возможность
Сейчас нормализация и токенизация поиска продублированы в двух местах и уже немного расходятся по стоп-словам: scripts/build-search-index.mjs (line 112) и lib/search.ts (line 77)
Это значит, что индекс строится по одним правилам, а ищется по другим.
Предлагаемое Решение
Целевая архитектура: общий пакет search-core с модулями normalize.ts, tokenize.ts, topic-matcher.ts, ranker.ts, index-format.ts. build-search-index использует его для генерации, а UI или API использует те же функции для запроса. Формат индекса должен быть versioned и содержать schemaVersion, generatedAt, contentHash.
Эффект: предсказуемая релевантность, меньше “магии” в поиске и намного легче тестировать ranking отдельно от UI.
Область Изменения
No response
Рассмотренные Альтернативы
No response
Критерии Готовности
No response
Проблема Или Возможность
Сейчас нормализация и токенизация поиска продублированы в двух местах и уже немного расходятся по стоп-словам: scripts/build-search-index.mjs (line 112) и lib/search.ts (line 77)
Это значит, что индекс строится по одним правилам, а ищется по другим.
Предлагаемое Решение
Целевая архитектура: общий пакет search-core с модулями normalize.ts, tokenize.ts, topic-matcher.ts, ranker.ts, index-format.ts. build-search-index использует его для генерации, а UI или API использует те же функции для запроса. Формат индекса должен быть versioned и содержать schemaVersion, generatedAt, contentHash.
Эффект: предсказуемая релевантность, меньше “магии” в поиске и намного легче тестировать ranking отдельно от UI.
Область Изменения
No response
Рассмотренные Альтернативы
No response
Критерии Готовности
No response