La ricerca file su Windows è una di quelle cose che dovrebbe funzionare e basta. Eppure chiunque abbia accumulato centinaia di documenti nella cartella Download sa benissimo che non è così. Foto, PDF, file di lavoro: ogni giorno il numero cresce, e ritrovare qualcosa scaricato anche solo due giorni prima diventa un’impresa. Windows Search a volte trova il file al volo, altre volte gira a vuoto senza restituire nulla. E non è un problema occasionale, è un comportamento sistematicamente incoerente.
Le solite soluzioni, tipo ricostruire l’indice o controllare le impostazioni di indicizzazione, non cambiano granché. La frustrazione resta. Ed è proprio questa frustrazione che ha spinto uno sviluppatore a cambiare completamente approccio: invece di continuare a cercare di aggiustare Windows Search, ha deciso di costruire un sistema di ricerca file personalizzato, partendo da un piccolo server domestico. Il risultato? Ricerche che restituiscono risultati in pochi millisecondi, ogni volta.
Un server Debian trasformato in motore di ricerca
L’idea di fondo è semplice ma efficace. Gli strumenti di ricerca si basano sull’indicizzazione dei file, e questa operazione non deve per forza girare sullo stesso sistema operativo dove risiedono i documenti. Anche un piccolo server può fare lo stesso lavoro, spesso meglio. Nel caso specifico, il server in questione è un homelab con Debian installato su bare metal. I file restano sul PC Windows, ma le cartelle vengono montate sul server tramite SMB. Il server si limita a scansionarle.
Il cuore del sistema è uno script Python piuttosto snello. Scansiona le cartelle, registra i nomi dei file e salva i metadati fondamentali: nome, percorso, posizione. Un semplice cron job lo esegue ogni 10 minuti per indicizzare eventuali nuovi file. Esistono soluzioni più sofisticate, come l’indicizzazione incrementale o i file watcher in tempo reale tipo inotify e fswatch, ma per un ambiente domestico sarebbero eccessive.
Per il motore di ricerca vero e proprio, la scelta è caduta su Meilisearch, un engine leggero che gira in Docker ed è progettato per query rapidissime. Una volta installato, i metadati indicizzati dallo script vengono caricati al suo interno, pronti per essere interrogati.
Un’interfaccia web che rende tutto utilizzabile davvero
Avere un backend funzionante con le API esposte da Meilisearch era già un buon punto di partenza, ma serviva qualcosa di pratico per interagirci. La scelta è ricaduta su una interfaccia React costruita con Vite e Tailwind, roba che si mette in piedi in meno di un’ora. Niente di complicato: una barra di ricerca, punto. Si digita una query, l’app la invia a Meilisearch sulla porta 7700, e l’API restituisce i percorsi esatti dei file corrispondenti. L’interfaccia poi converte il percorso memorizzato in un path utilizzabile direttamente sul PC.
Per rendere il tutto ancora più comodo, il progetto è stato trasformato in una Progressive Web App (PWA), fissata nella taskbar di Windows. Un clic e si apre. Si inizia a digitare e i risultati compaiono praticamente dalla prima lettera, quasi sempre nell’ordine dei millisecondi.
Le informazioni restituite dalla ricerca file includono il nome effettivo del documento, il percorso completo e il tipo di file. È anche possibile aprire direttamente il file nell’applicazione dedicata: le immagini si aprono in Windows Photos, i PDF nel browser, i file ZIP in Esplora File. Quello che era nato come un piccolo esperimento per capire come funziona l’indicizzazione ha finito per sostituire completamente Windows Search, con uno script Python, un motore di ricerca leggero e un’interfaccia minimale che insieme garantiscono risultati affidabili ogni singola volta.
