2011-04-07 2 views
0

Je veux rechercher la base de données en utilisant l'index de texte intégral de MySQL en utilisant plusieurs termes de recherche:mysql texte intégral recherche en mode booléen

SELECT description FROM `products` WHERE match(name, description) against('*ana* *apple*' IN BOOLEAN MODE) 

Je veux que la requête ci-dessus pour retourner les documents suivants, mais il ne fonctionnera pas:

babana pie 
applet 
fried bananas 
juicy apples 

Ma requête est-elle correcte?

+0

Que se passe-t-il? Avez-vous des hits? Trop? Trop peu? –

+0

@Pekka lors de l'exécution de la requête que les enregistrements liés à la pomme sont retournés – marcosbeirigo

Répondre

1

Vous pouvez être confronté à la restriction du texte intégral selon laquelle les mots apparaissant dans plus d'un ensemble% des enregistrements sont considérés comme "bruit" et ignorés. Les termes «banane» et «pomme» apparaissent tous deux dans 50% de vos enregistrements d'échantillons. Il est donc probable qu'ils ne correspondent pas. Essayez d'ajouter d'autres fruits dans vos données de test et recherchez quelque chose de plus "rare".

+0

il est dit ici que lorsque vous utilisez le mode booléen, mysql ignore les mots-clés http://stackoverflow.com/questions/4449431/mysql-full-text-stopwords-problem/4449780# 4449780 – marcosbeirigo

+0

@marcos ce n'est pas un problème de mots vides. Cela pourrait être la raison –

+0

vient d'ajouter un tas de données à la table, le résultat est le même – marcosbeirigo

Questions connexes