2011-10-02 4 views
3

Quelqu'un peut-il expliquer pourquoicomme MySQL et les résultats MATCH requête

column LIKE '%board%' 

rendements plus de résultats que

MATCH (column) AGAINST('board' IN BOOLEAN MODE) 

est parce que match contre ne tient pas compte des mots comme 'Tableau noir', 'Backboard' etc

Y at-il loin pour obtenir MATCH CONTRE retour Blackboard, panneau etc?

Répondre

3

MATCH (column) AGAINST('keyword... correspondra à la chaîne littérale fournie, où LIKE "%keyword%" correspondra si un mot contient la chaîne fournie.

0

Cela devrait faire l'affaire pour vous:

MATCH (column) AGAINST('board*' IN BOOLEAN MODE) 

Source: http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

Il y a beaucoup de bons exemples de requêtes de recherche là-bas.

+0

Vous ne savez pas si vous pouvez faire '* board *', selon les docs 'L'astérisque sert d'opérateur de troncature (ou de caractère générique). Contrairement aux autres opérateurs, il devrait être ajouté au mot pour être affecté. Les mots correspondent s'ils commencent par le mot précédant l'opérateur *. – AlienWebguy

+0

bon point, le premier n'aurait pas dû être là. –

+0

les comptages sont toujours désactivés, avec le caractère générique. Par exemple 20 MATCH CONTRE 50 contre LIKE '% board%' – madphp

Questions connexes