Chatta con noi

7 min

15/07/2022

Archivi documentali: come rendere ricercabili migliaia di documenti con Solr ed Elasticsearch


Negli anni, ci siamo trovati più volte di fronte alla stessa sfida: aiutare aziende e organizzazioni a gestire grandi quantità di documenti in modo semplice, ordinato ed efficace.

Curriculum vitae, documenti legali, relazioni tecniche, allegati provenienti da clienti o utenti: ogni progetto portava con sé l’esigenza di costruire un archivio digitale solido, ma anche intelligente, in grado di restituire in pochi secondi proprio quel file che si stava cercando.

Per raggiungere questo obiettivo non bastava più archiviare i documenti in cartelle o con qualche campo descrittivo dentro un database. Serviva qualcosa di più evoluto: un sistema capace di “leggere” il contenuto dei file, di analizzare le parole, di rispondere a ricerche avanzate anche in ambienti multilingua o con milioni di record.

È qui che sono entrati in gioco due strumenti fondamentali per noi: prima Apache Solr e poi Elasticsearch. Si tratta di due tecnologie open source nate proprio per aiutare a cercare in mezzo a grandi moli di testo in modo intelligente, veloce e preciso. Entrambi sono motori di ricerca open source basati su Apache Lucene e sono tra le tecnologie più utilizzate per l’indicizzazione e il recupero di grandi quantità di informazioni testuali.

Per rispondere a queste esigenze, l’approccio classico del database relazionale non era più sufficiente. Ecco allora che abbiamo introdotto l’uso di motori di ricerca full-text, capaci di indicizzare ogni parola di un documento e restituire risultati ordinati per rilevanza, anche su campi derivati, combinati o pesati diversamente.

Apache Solr e Elasticsearch hanno caratteristiche, punti di forza e filosofie di utilizzo che vale la pena raccontare.

Apache Solr (in ambienti on-premise)

All’inizio abbiamo utilizzato Apache Solr, apprezzandone la flessibilità e la possibilità di personalizzare quasi ogni aspetto della ricerca. Solr è molto adatto in contesti dove si lavora su server locali e si ha bisogno di un controllo totale sul comportamento del motore di ricerca.

I suoi punti di forza? La configurazione dettagliata, il supporto per query complesse, la capacità di indicizzare file anche molto grandi, e una struttura modulare che permette di adattarlo a molte esigenze diverse. Solr, infatti, offre un’architettura solida, molto documentata, con un sistema di configurazione XML che permette un controllo preciso sugli schemi di indicizzazione, le analisi linguistiche, il comportamento delle query.

Come detto è ideale quando si lavora in ambienti on-premise, con esigenze di stabilità, logging, accesso via API XML/JSON e supporto per il clustering. Inoltre, la struttura modulare di Solr permette di estendere le funzionalità in modo avanzato, anche con plugin scritti ad hoc.

Un altro vantaggio di Solr è la profonda integrazione con Lucene, che consente una gestione fine del ranking, dei boosting su determinati campi e delle funzioni di scoring personalizzate. Per molti anni è stato il nostro punto di riferimento per i progetti più complessi dal punto di vista semantico e linguistico.

Elasticsearch (in ambienti web, cloud o microservizi)

Negli ultimi tempi però, soprattutto per progetti web o cloud, ci siamo spostati verso Elasticsearch. È uno strumento più moderno, pensato per lavorare in tempo reale e per adattarsi bene a contesti distribuiti (web, cloud o microservizi). È una tecnologia pensata per l’analisi in tempo reale, con un’architettura distribuita, RESTful, JSON-native e ottimizzata per l’utilizzo moderno.

Offre una configurazione più semplice, ma anche tante funzionalità già pronte all’uso: autocompletamento, suggerimenti intelligenti, analisi linguistica, filtri geografici, supporto per più utenti e molto altro. E con strumenti come Kibana, è anche possibile costruire dashboard visive per analizzare i dati in modo grafico.

Un esempio concreto: il nostro progetto Expert CV Web

Un esempio concreto di questa esperienza è il nostro progetto Expert CV Web, pensato per aiutare enti, aziende e organizzazioni a gestire grandi archivi di curriculum.

In questa piattaforma, l’obiettivo non era solo archiviare i CV, ma permettere agli utenti di cercare e filtrare i profili in base a competenze, ruoli ricoperti, esperienze lavorative, lingue conosciute, localizzazione geografica e molto altro.

Per garantire velocità e precisione, abbiamo scelto Elasticsearch come motore di ricerca, integrandolo perfettamente con la nostra infrastruttura basata su CFML. Il risultato? Anche con centinaia di migliaia di documenti multilingua, la piattaforma restituisce risultati in pochi millisecondi, permettendo ricerche combinate, filtri in tempo reale e una visualizzazione chiara e ordinata; con l’inserimento nel sistema, per ogni termine ritenuto importante ai fini della ricerca, di sinonimi o di parole che hanno lo stesso senso o che fanno riferimento allo stesso concetto nelle altre lingue.

Abbiamo anche implementato un sistema di ranking personalizzato, che permette di ordinare i risultati in base a punteggi assegnati automaticamente o configurati dal cliente. In questo modo, il sistema non mostra solo “quello che combacia”, ma quello che è davvero rilevante per chi cerca. Questo approccio ci ha permesso di creare uno strumento estremamente apprezzato, soprattutto in ambito risorse umane e cooperazione internazionale.

Soluzioni tecniche e scenari d’uso

Ma le potenzialità di questi motori non si fermano qui. Solr ed Elasticsearch permettono di indicizzare documenti PDF, Word, Excel, persino PowerPoint. Consentono ricerche per concetti (e non solo per parole esatte), filtri avanzati per date, aree geografiche o temi, suggerimenti automatici (“intendevi…?”), e una perfetta integrazione con altri strumenti già presenti in azienda, come gestionali o CMS.

Inoltre, entrambi i motori offrono livelli di sicurezza avanzati, con possibilità di definire ruoli, permessi, autenticazione e monitoraggio delle attività. In pratica, sono strumenti pensati per gestire informazioni sensibili in modo serio, con tutti i requisiti necessari anche in ambienti regolati da normative stringenti.

Ecco in sintesi le principali caratteristiche:

  • Indicizzazione di documenti PDF, Word, Excel, Powerpoint;
  • Ricerca semantica e linguistica (es. con l’inserimento nel sistema, per ogni termine ritenuto importante ai fini della ricerca, di sinonimi o di parole che hanno lo stesso senso o che fanno riferimento allo stesso concetto nelle altre lingue);
  • Ricerca con filtri temporali, geografici, tematici;
  • Ricerche su database distribuiti o federati;
  • Creazione di interfacce di ricerca dinamiche, con feedback in tempo reale;
  • Funzionalità di suggerimento intelligente (did you mean, autocorrect, etc.);
  • Integrazione con portali esistenti, CMS o sistemi di backoffice.

Alcune letture consigliate sull’argomento

Se vuoi approfondire il funzionamento di queste tecnologie, ti consigliamo qualche lettura utile:



Che si tratti di curriculum, fascicoli sanitari, atti amministrativi o documenti progettuali, ciò che conta è la capacità di trovare subito ciò che serve, nel formato giusto, con la velocità giusta. E noi continueremo a progettare soluzioni che mettano la tecnologia al servizio di questa esigenza.

In DEV4U crediamo che l’informazione non strutturata non debba restare silente nei file, ma debba diventare ricercabile, leggibile e interpretabile. Per questo motivo ci impegniamo nella creazione di archivi documentali avanzati, in grado di adattarsi alle esigenze reali dei nostri clienti. Solr ed Elasticsearch ci hanno accompagnato in questo percorso, offrendo stabilità, scalabilità e versatilità.



contattaci ora dev4u

Per avere maggiori informazioni su questo argomento vi invitiamo a contattarci.
Fisseremo un incontro per parlarne e approfondire il tema.

Contattaci via mail scrivendo a info@dev4u.it, non perdere altre opportunità!



Autore/i dell’articolo:

Dario Berardi
Dario Berardi BIOLinkedinEmail
System Analyst | Senior Developer | Database Architect

Maurizio Patitucci
Maurizio Patitucci BIOLinkedinEmail
Business Analyst | Project Manager | Account Manager



Newsletter

Una volta al mese, una riflessione su strategia, tecnologia e trasformazione digitale per chi guida un’impresa o un’organizzazione e vuole prendere decisioni più consapevoli. Un appuntamento fisso per fermarsi a pensare.
Iscriviti e sali a bordo, si parte!

 

Sfoglia i numeri precedenti e poi decidi

Letta da imprenditori, manager e professionisti del digitale ogni mese.

* campi obbligatori

[✔] Confermo di aver letto l'informativa sulla Privacy policy

Intuit Mailchimp