我正在为我的网站创建一个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
答案 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)。