cakephp logo

 

Oggi vedremo come eseguire una query di tipo full text search con CakePHP. La ricerca full text search, estremamente utile se stiamo progettando un motore di ricerca, ci offre diversi vantaggi rispetto a una libera ricerca effettuata con l’operatore LIKE.

Una ricerca con l’operatore LIKE si limita a rintracciare le occorrenze di una parola nel campo sottoposto alla ricerca.

Una ricerca full text individua le righe in cui, il campo sottoposto alla ricerca, mostra un’attinenza con la chiave di ricerca. La precisione è maggiore e le performance superiori.

La ricerca full text si basa su indici che possono essere creati solo su campi di testo (char, varchar, text) e per gli storage engine MyISAM e InnoDB (a partire dalla versione 5.6). La sintassi SQL è la seguente:

SELECT * FROM pages WHERE MATCH (title) AGAINST ('example page');

Con CakePHP procederemo nel seguente modo:

 
$q = "example page";
 
$this->paginate = array(
    'limit' => 10,
    'conditions' =>  "MATCH(Page.title) AGAINST('$q' IN BOOLEAN MODE)"
);
 
$this->set('results', $this->paginate('Page'));

Se vuoi aggiornamenti futuri sulla ricerca di tipo full text e su CakePHP, seguimi via RSS o via email. Il box di iscrizione (gratuita ovviamente) è qui sotto 😉

NO SPAM. Non fornirò la tua email a terzi e riceverai solo contenuti che ti interessano sugli argomenti che tratto e potrai cancellarti quando vuoi con un link che trovi in tutte le email.