我想将MySQL FULL TEXT SEARCH
索引添加到现有表table1
到名为tags
的列
答案 0 :(得分:3)
使用FULLTEXT索引编制索引时要小心。
默认的最小字长为4
MySQL有一个未导入FULLTEXT索引的单词列表。此列表称为禁用词列表
Click here for the list of over 600 words excluded from FULLTEXT indexes
这是在创建任何全文索引并绕过停用词之前必须执行的操作:
步骤1)创建一个带有'a','an','the'的停用词列表。
echo“a”> /var/lib/mysql/stopwords.txt
echo“an”>> /var/lib/mysql/stopwords.txt
echo“the”>> /var/lib/mysql/stopwords.txt
步骤2)将这些选项添加到/etc/my.cnf
ft_stopword_lfile =的/ var / lib中/ MySQL的/ stopWords.txt中
的ft_min_word_len = 2
步骤3)service mysql restart
步骤4)现在,创建所需的全文索引。
如果您已经创建了它们,请删除它们并再次创建它们。
试一试!!!
答案 1 :(得分:2)
CREATE FULLTEXT INDEX `idxtags` ON `table1`(`tags`)
的完整语法
答案 2 :(得分:0)
我能想象的唯一原因是因为你有多个标签存储在一行中。所以我想你的数据看起来像这样:
primary key tags
--
1 tag1, tag2, tag3, tag4
2 tag1, tag5, tag7
3 tag4, tag13
不要那样做。请改用标签表。复合主键是(key,tag)。
key tag
--
1 tag1
1 tag2
1 tag3
1 tag4
2 tag1
2 tag5
2 tag7
3 tag4
3 tag13
当然,由于你没有提供表格结构或样本数据,我可能完全偏离基础。但根据我每天读到的问题,我会感到惊讶。