使用MySQL FULLTEXT搜索的问题
我已经发布了一个关于这个问题的问题,但情况已经发生了很大的变化,需要一个新的问题。
我有一个名为aromaProducts的MySQL表,其中有7列FULLTEXT索引,其中有三个记录。 当我对它进行查询时,如:
SELECT * FROM aromaProducts WHERE MATCH(title)AGAINST('chamomile');
我得到了正确的结果。 但是,当我尝试添加第二个字段进行搜索时,出现错误:
找不到与列列表匹配的FULLTEXT索引
它自己的每一列都可以正常工作。 我还明确添加了WITH QUERY EXPANSION和相同的东西。
我有另一个表,aromaProducts1,而不是一次一个地分配字段FULLTEXT,而是在创建表时将其分配给全部7个表。 对这张表,没有查询工作。 在检查表结构时,区别在于:
第一个表显示每个字段都有自己的FULLTEXT索引,而第二个表有一个索引,命名为title(分配第一个字段),它适用于所有七个字段。
所有我做FULLTEXT的列都是VARCHAR或TEXT数据类型。 我不知道问题是什么。
您必须在要匹配的所有列上创建全文索引
如果要匹配(col1,col2,col3),则必须在col1,col2和col3上创建全文索引。 如果要在(col1,col2)上匹配,则必须实现另一个全文索引 (在col1和col2上),但不能在col1,col2和col3上使用该索引
您必须创建一个包含多个列的全文索引,而不是每个列
链接地址: http://www.djcxy.com/p/75257.html