Di certo non lo è!
Qualsiasi termine di ricerca composto esclusivamente da parole bloccate fallirà silenziosamente. Le parole possono essere bloccate a causa di limiti di lunghezza min/max e/o del file stopword.
Ho trovato il file stopword predefinito troppo aggressivo, impediva molte ricerche valide. Anche la lunghezza minima predefinita di 4 entrava in gioco molto spesso per gli acronimi che le persone potrebbero voler cercare. Ho ridotto ft_min_word_len a 3 e rimosso completamente la stoplist (ft_stopword_file=''). Documento:http://dev.mysql.com /doc/refman/5.1/en/fulltext-fine-tuning.html
Puoi anche esaminare la query di ricerca per vedere se contiene solo <4 lettere di parole e, in tal caso, tornare a una ricerca LIKE. Non esiste un modo così semplice per aggirare la lista di stop a livello di applicazione.
La selezione dei "caratteri delle parole" potrebbe non soddisfare le tue esigenze ed è difficile cambiarla. Ad esempio, la ricerca di "Terry" non corrisponderà a "Terry's". In generale non c'è supporto per alcun tipo di stemming, quindi "biscuit" non corrisponderà nemmeno a "biscuits".
Infine, come accennato in cg, non esiste il supporto per InnoDB. Al giorno d'oggi, non vuoi mettere tutti i tuoi dati in una tabella MyISAM.
Se hai spazio di archiviazione libero, ciò che puoi fare è inserire la versione canonica principale dei dati in una tabella InnoDB, quindi creare una tabella MyISAM separata che contenga una copia del contenuto di testo libero, da utilizzare esclusivamente come esca di ricerca. Devi aggiornare entrambe le tabelle in base a una modifica, ma se la tabella MyISAM perde integrità, perdi almeno la possibilità di cercare nelle righe interessate, invece di rovinare i dati in tempo reale e ottenere errori dell'applicazione.
Puoi quindi, se hai i cicli da risparmiare, implementare la tua elaborazione del testo sull'esca di ricerca e interrogare le parole per aggirare alcune delle limitazioni di cui sopra. Ad esempio, puoi eseguire l'escape dei caratteri che vuoi che siano caratteri di parole, rimuovere i caratteri che non vuoi che siano caratteri di parole ed eseguire una semplice stemming manuale in inglese.