2013-06-06 26 views
0

如果我有这样的结构:我应该使用varchar的FULLTEXT索引吗?

CREATE TABLE IF NOT EXISTS `sheet` (
    `id` int(11) NOT NULL, 
    `title` varchar(80) COLLATE utf8_unicode_ci NOT NULL, 
    `html` text COLLATE utf8_unicode_ci NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `title` (`title`), 
    FULLTEXT KEY `html` (`html`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 

,我需要做的全文搜索查询是这样的:

SELECT * FROM `cms` 
WHERE MATCH (title, html) AGAINST ('+psoriasis +categorizacion' IN BOOLEAN MODE) 

我应该添加一个FULLTEXT指数title

回答

2

事实上,你应该修改/替换现有的索引,以便它涵盖两列(如果你使用WHERE MATCH(title, html)...,而不是`WHERE MATCH(title)... AND MATCH(html)...):

CREATE TABLE sheet (
    ... 
    FULLTEXT KEY title_html (title, html) 
    ... 
)