PHP MySQL 搜索建议

标签 php mysql search search-suggestion

在我的网络应用程序中将有多个用户。他们将自己的内容上传到我的网络应用程序。对于他们上传的每个内容,它都有一个标题、描述和标签(关键字)。我可以编写搜索脚本来搜索内容或用户名。但是当他们给出拼写错误的关键字时,他们不会返回任何结果。例如,如果数据库中有一个名为“Michael”的用户,并且搜索查询是“Micheal”,我应该得到“您是要搜索‘Michael’吗”,这就是搜索建议。

另外这个建议应该针对用户上传的内容。用户可以将其内容的标题保留为“Michael 的事件 2011 年 5 月”,并且应该为单个词生成建议。

最佳答案

您可以使用 SOUNDEX 来搜索发音相似的名称,例如:

SELECT * FROM users WHERE SOUNDEX(name) = SOUNDEX(:input)

或者那样

SELECT * FROM users WHERE name SOUNDS_LIKE :input

(完全等价)

编辑:如果您需要使用除 Soundex 以外的算法,如 Martin Hohenberg 所建议的,您需要在表中添加一个额外的列,例如称为 sound_equivalent。 (这实际上是一个更有效的解决方案,因为可以对该列进行索引)。那么请求将是:

SELECT * FROM users WHERE sound_equivalent = :input_sound_equivalent

然后可以使用 PHP 算法生成 sound_equivalent 列的内容,并将其余用户参数插入到表中。

关于PHP MySQL 搜索建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7214163/

相关文章:

php - PayPal REST API Payment::get 不返回电话

mysql - MySQL 中的索引

php - mysql 搜索返回整个表

ruby-on-rails - 如何使用 'where'的 'ActiveRecord::QueryMethods'方法来限制搜索?

php - 未指定输入文件

php - 无法在 SSL 网站上使用 Paypal API

php - 使用 PHP 更新 sql 表中的字段

php - 日期时间值不正确

mysql - 我是否需要 'User Account' 才能从 MySQL 数据库中检索数据?

php - 我的数据库连接文件有什么问题?