Salve,
mi sta succedendo una cosa molto strana con una ricerca FULLTEXT (Match e Against) in un DB MySQL.
In pratica se eseguo la seguente query:
codice:
SELECT title, text, MATCH(title,text) AGAINST('ipad') AS score FROM pages ORDER BY score DESC
mi restituisce risultati tutti con score pari a 0.
Ho pensato potesse essere il limite minimo di caratteri della parola da cercare fissato a 4, ma non è così (ho controllato e il limite è 3).
Infatti se provo ad eseguire questa query:
codice:
SELECT title, text, MATCH(title,text) AGAINST('dell') AS score FROM pages ORDER BY score DESC
è tutto normale.
Ho provato altre parole chiavi e il risultato è lo stesso.
E' inutile dire che ovviamente la parola "ipad" è presente nei record (e anche molto spesso), e proprio per questo non capisco perchè accada solo con questa stringa.
Ho riparato anche la tabella in questione.
Info sul server:
- MySQL 5.1.49-2
- Versione MySQL client: 4.0.24
Edit: mi è capitato sott'occhio questa discussione: http://forum.html.it/forum/showthread/t-743777.html
E in particolare: "se non hai modificato il valore della variabile "ft_min_word_len" di MySql, la ricerca che vuoi fare tu con la parola "php" non da nessun risultato in quanto le parole più corte di quattro caratteri non verranno cercate! e lo stesso vale per le parole che compaiono in più del 50% delle righe della tabella!". Effettivamente la parola "ipad" compare in oltre il 50% dei record (è in 19 record su 31 circa); è questo il problema? Come posso ovviare a ciò?
Grazie