2009-12-23 54 views
2

我试图在表中添加一个全文索引,但它似乎并不适用。为什么FULLTEXT索引没有被填充 - MYSQL

ADD FULLTEXT `genre` (
`genre` 
) 

查询执行,但基数仍然仅为1(即使我ahve几千个记录)

我试着分析一下,维修和他们俩谁也没更新索引。如果我创建一个常规索引,基数会立即更新。

根据索引选择返回ans空集,即使我知道匹配。

回答

2

基数对于FULLTEXT索引没什么意义,因为一个记录可以被多个键(每个单词一个键)引用。

一个FULLTEXT指数总是会被用于查询它是否适用于所有:

SELECT * 
FROM genre 
WHERE MATCH(genre) AGAINST ('mystring') 

指数,不过,不会索引的话不到ft_min_word_len字符(这是4默认情况下),因此查询将不匹配它们。

您可以发布您认为应该可以使用的查询吗?

+0

宾果。我的匹配行只有3个字。我只是转而在INDEX上使用LIKE,性能差异可以忽略不计。 谢谢! – Eddie 2009-12-23 16:55:49

+0

'@ Eddie':您也可以在'MySQL'设置中更改'ft_min_word_len'。 – Quassnoi 2009-12-23 16:58:37