2011-09-19 47 views
0

我爲我的網站創建了一個mysql全文搜索引擎,並且我有一個高級搜索頁面,允許用戶限制他們想要搜索的列。但是,無論何時我創建全文搜索索引,都必須使用該索引中使用的所有列,否則會收到錯誤消息。有沒有什麼辦法讓全文索引mysql索引,我只能使用一些列?不同排列的MySQL全文搜索

例如,我有5列在我的索引,通過這一說法提出:

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

如果我想下僅須遵守,當然搜索,我會得到錯誤:

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

回答

1

你只需要爲每一個可能的組合,創造出更多的索引你要搜索:

ALTER表table1添加全文fulltext_index2(學科,課程);

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

等......看看是否可以解決這個問題。

0

不,全文索引要求您使用所有列。如果您只想使用其中的一部分,則每個排列都需要單獨的全文索引。我沒有測試過它,但是您可以通過僅使用指定順序的列來繞過它。例如列(a,b,c)上的索引可能允許您僅搜索(a,b),因爲它們是首先列出的,但不是(a,c)或(b,c)。