如何将索引添加到现有表中的列?

时间:2011-02-20 15:13:16

标签: mysql database

我想将MySQL FULL TEXT SEARCH索引添加到现有表table1到名为tags的列

3 个答案:

答案 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`)

http://dev.mysql.com/doc/refman/5.5/en/create-index.html

的完整语法

答案 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

当然,由于你没有提供表格结构或样本数据,我可能完全偏离基础。但根据我每天读到的问题,我会感到惊讶。