在mysql数据库中最有效地搜索关键字

时间:2015-09-21 16:17:35

标签: php mysql full-text-search

我正在开发一个项目,我有一个数据库,其中包含一个摘要字段,该字段由网站访问者输入的网络表单填写。

当用户完成输入摘要字段时,我想使用页面上用户输入的单词对数据库中的类似记录执行查找,这些记录包含他们填写的相同关键字页。

我以为我可以拆分提交的摘要字符串,然后循环遍历数组并构建查询,以便查询最终结果如下:

{{1}}

然而,这看起来效率非常低,并且由于数据库可能会变得非常大,因此可能会成为一个非常慢的查询运行。

然后我找到了MySQL {{1}}子句,但这似乎只适用于多个值,其中一个字段只能连续包含其中一个值。

有没有办法可以使用IN函数,还是有更好的MySQL函数可以用来做我想要的,或者我的第一个想法是围绕它的唯一方法?

我想要实现的一个例子有点像Stack Overflow。当您失去标题字段的焦点时,它会根据您提供的标题弹出类似的问题。

1 个答案:

答案 0 :(得分:1)

我建议您阅读本手册页InnoDB FULLTEXT IndexesFull-Text Restrictions上的手册页。全新的mysql功能已经包含在最近的mysql版本中,增加了对MyISAM表的使用。

关于无能力升级mysql版本,没有理由不能在同一个数据库中混合使用INNODBMyISAM表。因此,人们会将文本信息保存在INNODB(历史上FTS索引功能可用),并在需要时连接到{{1}}表。这避免了必须升级到版本5.6和#34;参数。

图例:FTS =全文搜索