MySQL全文搜索具有不同的排列

时间:2011-09-19 16:15:02

标签: mysql full-text-search mysql-error-1064

我正在为我的网站创建一个mysql全文搜索引擎,我有一个高级搜索页面,允许用户限制他们想要搜索的列。但是,每当我创建全文搜索索引时,必须使用该索引中使用的所有列,否则我会收到错误消息。有没有办法为fulltext创建一个mysql索引,我可以只使用一些列?

例如,我的索引中有5列,由此语句构成:

ALTER TABLE table1 ADD FULLTEXT fulltext_index(subject, course, prof, semester, 
year);

如果我只想在主题和课程下搜索,我会收到错误:

#1191 - Can't find FULLTEXT index matching the column list 

2 个答案:

答案 0 :(得分:1)

您只需为要搜索的每种可能组合创建更多索引:

alter table table1 add fulltext fulltext_index2(subject,course);

alter table table1 add fulltext fulltext_index3(course,semester,year);

等...看看是否能解决问题。

答案 1 :(得分:0)

不,全文索引要求您使用所有列。如果您只想使用其中的一些,则每个排列都需要一个单独的全文索引。我还没有对它进行过测试,但是你可以通过只使用指定顺序的列来绕过它。例如列(a,b,c)上的索引可能允许您仅搜索(a,b),因为它们首先列出,但不是(a,c)或(b,c)。