我最近正在迁移MySQL数据库,并发现有关FTS索引的问题。
以下是产生此问题的步骤:
我使用以下命令导出数据库:
mysqldump -p -u username database_name > export.sql
并将其导入:
mysql -p -u username database_name < export.sql
之后,我在每个需要它们的表上运行FTS索引命令:
ALTER TABLE table_name ADD FULLTEXT(colnames...)
检查这些表的表状态时,记录数是正确的。但是,index_length
与原始数据库(我们从中导出的数据库)非常不同。
结果是FTS部分工作(一些字符串匹配但不是全部)。因此,如果我使用&#34; test&#34;这样的字符串进行了MATCH
,那么它可以同时使用,但是当我使用#34; hello&#34;等字符串进行MATCH
时。 ,它只适用于原始数据库。
这种行为的原因是什么?我非常小心地确保所有表都添加到FTS索引中。这些表每个都有大约150,000条记录。
答案 0 :(得分:0)
总是这样,不是这样。花费数小时试图解决问题,在StackOverflow上发布的几分钟内,答案就出现了。
所以问题在于sql配置文件中的FTS参数。以前,我删除了停用词列表,并减少了最小字长。忘了将这些参数带到新服务器上。