Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verbesserung der Mysql Match Against-Suche

Sie können genau das tun, was Sie wollen, indem Sie IN BOOLEAN MODE abgleichen und mit dem * Betreiber.

Zum Beispiel:

 ... MATCH(thing) AGAINST ('+educat*' IN BOOLEAN MODE)...

Das + weist die Übereinstimmung an, nur die Werte von thing einzuschließen die den Übereinstimmungsbegriff enthalten, was in diesem Fall alle indexierten Werte sind, die mit "educat beginnen " (siehe hier ). wie der boolesche Modus im Detail funktioniert).

Abgesehen davon indiziert die Volltextsuche in MySQL standardmäßig keine Wörter mit 3 oder weniger Zeichen, daher vermute ich, dass Ihre Übereinstimmung mit "edu" nicht so funktioniert, wie Sie denken. Sehen Sie sich den Wert Ihres ft_min_word_len an Variable, um zu sehen, ob das der Fall ist.