Как я пытался сделать идеальный нечёткий поиск (и почему в итоге пришлось писать 5 уровней скоринга)
Я делаю Beetroot — клипборд-менеджер для Windows на стеке Tauri + React + Rust + SQLite. В моей ежедневной базе 1000+ записей: куски кода, URL-ы, стектрейсы, SQL-запросы, переписки из мессенджеров. Поиск по всему этому должен работать мгновенно и попадать точно в цель. Сначала я пошёл по простому пути: подключил популярную библиотеку Fuse.js и думал, что задача решена. Но реальные данные буфера обмена оказались для неё патологическим кейсом. Эта статья — про путь от «просто подключи готовую либу» до самописного 5-уровневого движка с мерж-скорингом. Два дня, 8 итераций, пара красивых продуктовых багов по дороге. Смотреть эволюцию поиска
https://habr.com/ru/articles/1010086/
#поиск #алгоритмы #typescript #fusejs #фронтенд #оптимизация #буфер_обмена

Как я пытался сделать идеальный нечёткий поиск (и почему в итоге пришлось писать 5 уровней скоринга)
Недавно я рассказывал на Хабре про архитектуру своего пет-проекта — клипборд-менеджера Beetroot на стеке Tauri + React + Rust + SQLite. В комментариях тепло приняли отказ от прожорливого Electron и...
