使用MySQL FULLTEXT搜索的问题

时间:2009-08-26 12:31:25

标签: mysql full-text-search

我已经发布了一个有关此问题的问题,但情况发生了很大变化,需要保留一个新问题。

我有一个名为aromaProducts的MySQL表,其中有7列带有FULLTEXT索引,其中有三个记录。当我对它进行查询时:

SELECT * FROM aromaProducts WHERE MATCH(title)AGAINST('chamomile');

我得到了正确的结果。但是,当我尝试添加第二个字段进行搜索时,出现错误:

找不到与列列表匹配的FULLTEXT索引

每一栏本身都很好。我还明确地添加了WITH QUERY EXPANSION和同样的东西。

我有另一个表,aroma Products1,而不是一次一个地将FULLTEXT分配给字段,我在创建表时将其分配给所有7个。对于此表,没有查询工作。在检查表结构时,区别在于:

第一个表显示每个字段都有自己的FULLTEXT索引,而第二个表有一个名为title的索引(第一个分配它的字段),它适用于所有七个字段。

我制作FULLTEXT的所有列都是VARCHAR或TEXT数据类型。我不知道问题是什么。

2 个答案:

答案 0 :(得分:5)

您必须在要匹配的所有列上创建全文索引

如果要匹配(col1,col2,col3),则必须在col1,col2和col3上创建全文索引。如果你想匹配(col1,col2)你必须实现另一个全文索引(在col1和col2上),你不能在col1,col2和col3上使用那个

答案 1 :(得分:2)

您必须创建一个包含多个列的全文索引,而不是每个

一个