首页 文章

使用MySQL FULLTEXT搜索的问题

提问于
浏览
1

我已经发布了一个关于此问题的问题,但情况发生了很大的变化以保证一个新问题 .

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

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

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

Can't find FULLTEXT index matching the column list

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

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

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

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

2 回答

  • 2

    你必须在 all columns you are going to match 上创建全文索引

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

  • 5

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

相关问题