di: Gabriele Farina 21 Settembre 2006
In questo articolo tratteremo gli strumenti per implementare un motore di ricerca fulltext per i nostri siti internet ed applicazioni web utilizzando lo Zend_Framework. In particolare vedremo il comportamento e l'utilità della libreria Zend_Search_Lucene che implementa un wrapper per la libreria Lucene del progetto Apache che permette di effettuare l'indicizzazione e la ricerca fulltext su documenti di diverso tipo.
Normalmente le soluzioni adottate per le ricerche fulltext nelle proprie applicazioni sono librerie sviluppate appositamente che si appoggiano, ove possibile, agli indici fulltext forniti da MySQL. Tempo fa trattai questo argomento, ma al giorno d'oggi la sola indicizzazione dei documenti presenti all'interno del database non è più accettabile. Come vedremo tra poco Zend_Search_Lucene estende questo concetto permettendoci di indicizzare file statici e metadati.
Prima di iniziare sarebbe opportuno introdurre il funzionamento standard di un sistema di indicizzazione e di come vengono effettuate le ricerche fulltext su questi indici generati. Uno script si occupa di indicizzare tutti i documenti di interesse estraendo da questi le parole chiave e salvandole all'interno di strutture dati apposite con riferimenti ai documenti da cui sono state estratte.
Le parole chiave sono solitamente estratte dai documenti in base a determinati criteri al fine di non rendere l'indice troppo voluminoso: solitamente si sceglie una lunghezza minima delle parole indicizzabili, si sceglie una lista di parole considerate comuni che verranno scartate automaticamente e, in casi particolari, si scartano parole chiave non pertinenti con il contesto.
L'estrazione delle parole chiave viene ovviamente effettuata dopo che il documento è stato ripulito di tutti i dati in eccesso, come la punteggiatura ed informazioni di markup. Successivamente una libreria di ricerca si occupa di effettuare le ricerche su questo indice in base a dei criteri specifici; il risultato della query sarà una lista di riferimenti ai documenti che espongono le parole chiave specificate. Alcune volte le librerie di ricerca permettono di utilizzare dei comandi molto semplici al fine di limitare la ricerca a determinati criteri oppure indicando quali parole chiave includere e quali escludere dalla ricerca. I risultati ottenuti vengono poi ordinati per pertinenza dei dati con la ricerca e restituiti all'utente.
Zend_Search_Lucene svolge automaticamente la maggior parte di queste operazioni; vediamo come.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |