我目前正在研究在MySQL中使用FULLTEXT索引来获取网站内的搜索功能。
基本上,用户可以转到高级搜索页面,并选择一个或多个要搜索的列,例如,他们可以搜索标题,描述和评论,或者只搜索1列或三者的混合,当他们执行搜索时,将针对关键字搜索这些选定的列。
我创建了1个标题索引,1个描述索引和1个注释索引,然后尝试运行以下查询:
SELECT * FROM support_calls WHERE MATCH(Title, Description) AGAINST('+these, +are, +some, +keywords')
我从MySQL那里得到一个错误,说MATCH没有匹配任何全文索引,我发现我需要创建一个包含Title和Description的索引,而不是将它们放在单独的索引中。
如果是这种情况,这将增加一些复杂性,因为我将不得不为用户选择的列的每个变体创建一个索引。我现在就这么做,还是有更好的解决方案?
答案 0 :(得分:0)
首先执行以下查询,然后运行您的MATCH()查询。
ALTER TABLE support_calls ADD FULLTEXT (
Title, Description
)