2010-07-19 27 views
2

Donc, apparemment, si un index de texte intégral de la table Mysql de la requête de correspondance de MySQL contient un mot-clé qui apparaît dans 50% des lignes de données, ce mot-clé seront ignorés par la requête de correspondancecomment désactiver 50% l'exclusion

Donc, si je une table avec l'index du texte intégral du « contenu » qui contient 50 entrées et 27 des entrées contient le mot « ordinateur » dans le domaine du contenu, et j'exécuter la requête:

SELECT * 
    FROM `table` 
WHERE MATCH(`content`) AGAINST ('computer'); 

... la requête de l'ordinateur sera renvoie zéro résultat puisque l'ordinateur apparaît dans plus de 50% des entrées et donc le mot-clé est ignoré ...

est-il un moyen de désactiver cette fonctionnalité d'autant plus que cela pose problème dans la phase de début de la durée de vie

+0

maintenant je comprends ce que signifie seuil de 50% et pourquoi il est mauvais – JerryGoyal

Répondre

0

Oui, utilisez le Boolean plein texte recherché Option

See here Mysql Manual

Le manuel dit que "Ils n'utilisent pas le seuil de 50%." La recherche dans MySQL n'est pas intuitive et le manuel est légèrement déroutant. Vous devez donc le lire attentivement et préparer quelques cas de test pour vous assurer qu'il fonctionne et que vous l'avez implémenté correctement (à partir d'une expérience amère).

Il y a un certain nombre d'autres plugins de recherche de complexité variable que vous pourriez vouloir regarder qui fonctionnent mieux mais il vaut la peine de se familiariser avec la version native car elle est rapide et (facile?) Sale.