【问题标题】:MySQL fulltext search 1 character works with MyISAM only?MySQL 全文搜索 1 个字符仅适用于 MyISAM?
【发布时间】:2017-08-07 02:29:51
【问题描述】:

我有一个查询应该返回 1 个结果

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

如果表引擎是 MyISAM,它可以工作。
但是,如果我将表改回 innodb,它不会返回任何内容。
问题是搜索+b引起的

我使用show variables like 'ft_min%' 来检查值为1。

由于系统是 Magento 2.1,我不知道如果我更改默认引擎有什么问题。如果搜索条件在innodb中包含1个字符,如何获得结果?

【问题讨论】:

    标签: mysql magento full-text-search innodb myisam


    【解决方案1】:

    ft_min_word_len 用于 MyISAM;
    innodb_ft_min_token_size 用于 InnoDB。

    更改设置时,请务必重建所有 FULLTEXT 索引。使用OPTIMIZE TABLEALTER TABLE

    【讨论】:

    • 谢谢。我将 innodb_ft_min_token_size 更新为 1 并重新启动数据库。然后ALTER TABLE abc ENGINE='InnoDB';,但在InnoDB中还是不行
    • 我用show variables检查innodb_ft_min_token_size = 1
    • 半数以上的行中有“b”这个词吗?
    猜你喜欢
    • 2016-01-07
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多