PHP  »  Articoli  »  Zend Framework 

Un motore di ricerca in PHP con lo Zend Framework

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.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti