| Ricerche Full-Text in MySQL |
| Database & Server |
| Venerdì 18 Novembre 2011 12:51 |
|
Nella maggior parte dei casi per fare delle ricerche non precise, si usa LIKE. LIKE però soffre di lentezza quando esegue query pesanti. Un modo per ovviare è usare ricerche Full-Text che sono parecchie più performanti. Non è tutto oro quel luccica però perchè per usare Full-Text bisogna tenere in considerazione alcune cose:
Comunque, prima di tutto creiamo un indice:
L'indice può anche essere aggiunto in fase di creazione tabella ovviamente. Vediamo una query di esempio:
La sequenza di comandi MATCH() - AGAINST() restituisce il valore di attinenza del risultato con il testo cercato (numero in floating-point compreso tra 0 e 10). Quindi, considerando che la clausola WHERE per essere verificata deve avere valore booleano “true”, se il risultato in questione ha attinenza 0 su 10 (nessuna attinenza) viene scartato; in sostanza vengono presi in considerazione solo i risultati con attinenza maggiore di 0. Una query più giusta per sfruttare al meglio Full-Text potrebbe essere questa:
Così i risultati vengono resituiti in ordine di attinenza (da quello che ha più attinenza a quello che ne ha di meno). Da un punto di vista prestazionale devo ammettere che Full-Text è più veloce di LIKE, però lo considero meno flessibile. |
| Ultimo aggiornamento Venerdì 18 Novembre 2011 13:05 |


