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

MySQL stoppt Wörter und passt

Standardmäßig indizieren MySQL-FULLTEXT-Indizes keine Wörter, die kürzer als 4 Zeichen sind (für MyISAM-Tabellen). Wenn Sie 3-Buchstaben-Wörter indizieren möchten, müssen Sie die ft_min_word_len Systemvariable (oder innodb_ft_min_token_size für InnoDB) auf einen Wert von 3 oder niedriger, starten Sie dann mysqld neu und bauen Sie Ihre Tabelle neu auf.

Fügen Sie dies beispielsweise zu [mysqld] hinzu Abschnitt Ihrer my.cnf-Datei:

ft_min_word_len=3

Starten Sie dann mysqld neu.

Führen Sie dann diesen Befehl aus, um die Tabelle neu zu erstellen:

alter table `tbladvertstest` force;

Jetzt sollte Ihre Abfrage funktionieren:

mysql > SELECT * 
    -> FROM `tbladvertstest` 
    -> WHERE MATCH (`SearchCompany`) AGAINST ('+"All Bar One"' IN BOOLEAN MODE) ;
+----+---------------+
| id | SearchCompany |
+----+---------------+
|  1 | All Bar One   |
+----+---------------+
1 row in set (0.00 sec)