ElasticSearch è un ottimo motore di ricerca full-text (sviluppato sulla base di Apache Lucene) ideale per cercare informazioni all’interno di grosse mole di dati, ma è possibile usarlo anche per effettuare delle ricerche testuali all’interno di documenti, indicizzando ed elaborando i contenuti. Possiamo utilizzare ElasticSearch persino se i documenti di partenza non hanno un contenuto testuale nativo, come, ad esempio, PDF dove il testo è stato convertito in immagine.

Bastano 4 semplici azioni:

  • indicizzare i file con un crawler;
  • leggere il contenuto testuale dai documenti;
  • fornire testi e metadata a ElasticSearch;
  • lasciare lavorare ElasticSearch.

Indicizzare i file con un crawler

Prima di poter leggere i contenuti dei documenti è importante indicizzare i file presenti nel file system. Un ottimo strumento in grado di compiere questa operazione è FS Crawler: un crawler sviluppato appositamente per ElasticSearch, in grado di restare costantemente aggiornato su ciò che accade nel file system: dalla presenza di nuovi file, all’eliminazione dei documenti.

Leggere il contenuto dei documenti

Basterà installare il plugin Ingest Attachment Processor e la libreria Apache Tika per leggere ed estrarre il contenuto dalla maggior parte dei documenti (XLS, PDF, DOC, PPT, ecc.).

Come posso estrapolare il testo da un PDF che, in realtà, è un’immagine?

Spesso alcuni documenti racchiudono in sé delle immagini con del testo: documenti cartacei scansionati o, semplicemente, fotografati tramite smartphone.
In tal caso abbiamo bisogno di un motore OCR; Tesseract, integrandosi facilmente con FS Crawer, fa al caso nostro. Sarà fondamentale che la qualità del file da processare sia piuttosto elevata; qualora la nostra immagine abbia una bassa risoluzione, molto rumore oppure una qualità scadente, La libreria ImageMagick ci verrà incontro con utilissime funzioni per processare le immagini quali, ad esempio, il ridimensionamento, la riduzione del rumore, la rotazione e la conversione del file. Tali funzioni saranno fondamentali per ottimizzare il sistema OCR.

Fornire testi e metadata a Elastic Search

Una volta che il nostro sistema avrà estrapolato il contenuto dei documenti, sarà lo stesso crawler a fornire ad ElasticSearch i testi e i metadata dei file. Il motore di ricerca indicizzerà le informazioni rendendole disponibili per ulteriori implementazioni.

Riassumendo: come posso cercare o indicizzare del testo contenuto in file pdf, word, excel o nelle immagini?

Gli strumenti OpenSource che permettono di cercare o indicizzare del contenuto testuale presente in documenti (DOC, XLS, PPT, PDF) o in immagini sono:

Vuoi parlarne di persona?
Non esitare, contattaci ora!