Query full-text con MySQL

di Daniele Bochicchio, in Database, MySQL,

MySQL supporta dalla versione 3.23 le query full-text. Nella versione 4 è finalmente giunto alla maturità e può cominciare ad essere utilizzato.
Per sfruttare questa caratteristica è necessario definire un nuovo indice, di tipo full-text, sulla tabella. Se la ricerca deve essere fatta su più colonne, è necessario definire un indice a cui entrambe le colonne appartengano.
Per il resto si tratta di eseguire più o meno una query come questa:

<%

strSQL = "SELECT ID, Titolo, MATCH (titolo, descrizione) AGAINST ('chiave di ricerca') as SCORE" & _
 " FROM contenuti WHERE MATCH (titolo, descrizione) AGAINST ('chiave di ricerca') ORDER BY SCORE DESC"

%>

Avremo una nuova colonna SCORE che potremo utilizzare, tra l'altro, per l'ordinamento (o per filtrare occorrenze troppo basse come valore).

Un paio di considerazioni personali: di lavoro ce n'è ancora da fare, il motore è tutt'altro che preciso, anche a causa del fatto che l'operatore booleano di default è l'OR.
Ho provato la stessa ricerca sulle stesse tabelle, con MySQL e con SQL Server (è quella che trovate nel motore di ricerca del sito): inutile sottolineare che quella di SQL Server si è rilevata molto più precisa.

Per approfondimenti nel manuale MySQL:
http://www.MySQL.com/doc/en/Fulltext_Search.html

Per la ricerca full-text con SQL Server:
https://www.aspitalia.com/articoli/db/full-text.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi