Как я пытался сделать идеальный нечёткий поиск (и почему в итоге пришлось писать 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 и...

Хабр

Je viens de publier la version 0.6.0 de #Gibson mon moteur de #blog #markdown.
La grosse nouveauté est l'ajout d'un moteur de recherche interne en JS. Grosse galère à implémenter avec #alpinejs et #fusejs heureusement j'ai fini par tomber sur ce blog qui m'a donné des pistes https://www.luckymedia.dev/blog/integrate-fusejs-with-statamic (celui là n'est plus vraiment à jour https://gummibeer.dev/blog/2021/static-search-with-fusejs/ )

https://codeberg.org/fredix/gibson/releases/tag/v0.6.0

Integrate Fuse.js with Statamic - Lucky Media

Lucky Media is a digital agency crafting custom web solutions and professional websites that take your business to the next level. Get Lucky today.

Lucky Media

Eleventy + web components is 🥰

I added a quick search to my blog:
https://jschof.dev/

Click search, or hit cmd + k (ctrl + k on windows) to see a quick fuzzy search of my posts.

Eleventy serializes out the entries for the search statically, and the quick search web component takes it up and renders!

#webcomponents #litjs #fusejs

Jschof.dev

I love to collaborate and solve problems. A front end dev blogging about html, css, javascript, web components... and more!

🔖 Have you tried the latest #developer tutorial from the @dailyco blog?

💡 Learn how to enhance #UX and improve search performance in #ReactJS apps by implementing client-side search with #FuseJS.

🏁 Get started ➡️ https://daily.co/blog/implementing-client-side-search-in-a-react-app-with-fuse-js/

#React #JavaScript #programming

Implementing client-side search in React with Fuse.js

Using Fuse.js to implement fuzzy search in a React application

Daily API: Developer Tips to Build Video and Audio Chat