2012-07-08 70 views
0

我在Django默認User模型按如下:Django的全文搜索MySQL的

delimiter $$ 

CREATE TABLE `auth_user` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `username` varchar(30) NOT NULL, 
    `first_name` varchar(30) NOT NULL, 
    `last_name` varchar(30) NOT NULL, 
    `email` varchar(75) NOT NULL, 
    `password` varchar(128) NOT NULL, 
    `is_staff` tinyint(1) NOT NULL, 
    `is_active` tinyint(1) NOT NULL, 
    `is_superuser` tinyint(1) NOT NULL, 
    `last_login` datetime NOT NULL, 
    `date_joined` datetime NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `username` (`username`) 
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=latin1$$ 

我試圖alter table 'auth_user' add fulltext(first_name), last_name, email)添加全文搜索,我不斷收到錯誤Error Code: 1214. The used table type doesn't support FULLTEXT indexes。有沒有理由不支持全文搜索?我想這可能是因爲我擴展了模型並添加了自己的表格?

+0

django文檔也建議不要改變模型的表格類型,最有可能出於這個原因。我假設django會選擇合適的類型或自己使用一些最佳選擇。 – jdi 2012-07-08 04:32:36

+0

https://docs.djangoproject.com/en/dev/faq/models/#how-do-i-add-database-specific-options-to-my-create-table-statements-such-as-specifying- myisam-as-the-table-type – jdi 2012-07-08 04:37:03

回答

1

全文索引只能在MyISAM表上工作,而你的是InnoDB。 source

+0

因此,我無法進行全文搜索? :( – KVISH 2012-07-08 04:34:16

+0

@kalvish:將你的表類型改爲MyISAM? – jdi 2012-07-08 04:35:24

+0

問題是有很多外鍵約束,這肯定會影響我的應用程序,它會大量使用它。 – KVISH 2012-07-08 04:37:19