blog personale

Mysql offre una interessante funzionalità : la ricerca fulltext, con la quale è possibile creare un indice su più campi, quindi cercare velocemente i record che contengono le parole cercate nei records della tabella.

Esempio:
tabella prodotti di un negozio

creare indice con
ALTER TABLE prodotti ADD FULLTEXT(`nome`, `marca`,`descrizione`)

quindi eseguire le query così: (parola cercata: dolci)
SELECT *,MATCH(`nome`, `marca`,`descrizione`) AGAINST(’dolci’) as pmatch
FROM prodotti
WHERE MATCH(`nome`, `marca`,`descrizione`) AGAINST(’dolci’) > 0
ORDER BY pmatch DESC

Il risultato è una tabella con una colonna in più "pmatc", che contiene un numero indicante la pertinenza (più alto => più record che contenevano la parola).
In pratica MATCH(`nome`, `marca`,`descrizione`) AGAINST(’dolci’) restituisce un punteggio della parola rispetto ai campi del relativo record. E’ necessario ripeterla due volte nella query per problemi di visibilità della clausola where dentro la query.
Indicativamente la pertinenza corrisponde al numero di volte che la parola viene trovata nei campi dell’indice.
Attenzione: l’indice considera el parole per intero, quindi "dolci" o "dolc" NON trova nessun record che contiene "dolce", a differenza di una LIKE ‘%dolc%’

Leave a comment

Name: (Required)

E-mail: (Required)

Website:

Comment:

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word


 

Ultimi post

About Me

Blog tecnico/geek di Elvis. Chi sono ? studente & web developer freelance. Vedi la pagina "about me" per altre info.

scontiPHP