5.360 messaggi dal 09 febbraio 2002
Contributi
Salve,
in un sito che si appoggia a MySql ho implementato la ricerca fulltext e nella maggior parte dei casi funziona egregiamente.
Ho trovato dei problemi nei momenti in cui gli utenti digitano delle sigle, ad esempio:
S.P.A.
D.L.
P.A.
e così via...

anche se queste sigle risultano presenti all'interno del testo contenuto nel campo fulltext, le seguenti queries non mi restituiscono alcun risultato.

SELECT * FROM contenuti WHERE MATCH(testo) AGAINST ('S.P.A.' IN BOOLEAN MODE);
SELECT * FROM contenuti WHERE MATCH(testo) AGAINST ('"S.P.A."' IN BOOLEAN MODE);
SELECT * FROM contenuti WHERE MATCH(testo) AGAINST ('S\.P\.A\.' IN BOOLEAN MODE);

Anche lanciando la query senza l'opzione IN BOOLEAN MODE è la stessa cosa. Probabilmente il motore delle ricerche fulltext pensa che il punto serva a separare le tre parole S P e A, che vengono miserabilmente scartate perchè sono formate da 1 solo carattere e la variabile globale ft_min_word_len è impostata a 3.

Invece, queries di questo tipo funzionano bene:
SELECT * FROM contenuti WHERE INSTR(testo, 'S.P.A.')>0;
SELECT * FROM contenuti WHERE testo LIKE '%S.P.A.%';

ma in ogni caso io vorrei continuare ad usare la ricerca fulltext. Come posso risolvere?

Vi ringrazio anticipatamente.
Modificato da BrightSoul il 30 aprile 2007 11.11 -

- So what you're saying is, if we get in trouble, there's no one to help us out?
- I'm afraid not.
- Fantastic!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.