2017-08-07 4 views
0

ich eine Abfrage haben, die 1 ErgebnisMySQL Volltextsuche 1 Zeichen funktioniert nur mit MyISAM?

SELECT * FROM 
    `catalogsearch_fulltext_scope1` AS `search_index` 
WHERE 
    (MATCH (data_index) AGAINST ('+Product +Set +b' IN BOOLEAN MODE)); 

zurückkehren sollte Wenn die Tabelle Motor MyISAM ist, funktioniert es.
Aber wenn ich die Tabelle zurück zu innodb ändern, gibt es nichts zurück.
Das Problem verursacht wird, durch +b

Suche verwendet I show variables like 'ft_min%' den Wert zu überprüfen ist 1.

Da das System Magento 2.1, bin ich keine Ahnung, es irgendein Problem gibt, wenn ich die Standard-Engine ändern. Wie kann ich das Ergebnis erhalten, wenn die Suchbedingung 1 Zeichen in innodb enthält?

Antwort

1

ft_min_word_len ist für MyISAM;
innodb_ft_min_token_size ist für InnoDB.

Wenn Sie die Einstellung ändern, stellen Sie sicher, dass alle FULLTEXT-Indizes neu erstellt werden. Verwenden Sie OPTIMIZE TABLE oder ALTER TABLE.

+0

Danke. Ich habe 'innodb_ft_min_token_size' auf 1 aktualisiert und die Datenbank neu gestartet. Dann 'ALTER TABLE abc ENGINE = 'InnoDB';', aber immer noch nicht in InnoDB arbeiten – user631607

+0

Ich benutzte 'show Variablen' zu überprüfen' innodb_ft_min_token_size' = 1 – user631607

+0

Haben mehr als die Hälfte der Zeilen das Wort 'b' in ihnen? –