2017-08-07 4 views
0

私はテーブルのエンジンが、それは動作しますが、MyISAMテーブルの場合MySQL全文検索1文字はMyISAMでのみ動作しますか?

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

1つの結果を返す必要がありますクエリを持っています。
しかし、テーブルをinnodbに戻すと、何も返されません。システムは、Magentoの2.1であるとして
問題は、私は値をチェックするためにshow variables like 'ft_min%'を使用+b

を検索によって引き起こされるが、1

で、私は、デフォルトのエンジンを変更した場合は考えが何か問題がありませんよ。 innodbに検索条件に1文字が含まれていると、結果はどのように得られますか?

答えて

1

ft_min_word_lenはMyISAM用です。
innodb_ft_min_token_sizeはInnoDB用です。

設定を変更する場合は、必ずFULLTEXTインデックスをすべて再構築してください。 OPTIMIZE TABLEまたはALTER TABLEを使用してください。

+0

ありがとうございました。 'innodb_ft_min_token_size'を1に更新し、データベースを再起動しました。それで 'ALTER TABLE abc ENGINE = 'InnoDB';'がInnoDBでまだ動作しない – user631607

+0

'show variables'を使って' innodb_ft_min_token_size' = 1を確認しました – user631607

+0

半分以上の行に単語 'b'が入っていますか? –

関連する問題