繁体   English   中英

PHP MySQL搜索建议

[英]PHP MySQL Search Suggestions

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

此建议也应该针对用户上传的内容。 用户可以将其内容的标题保持为“迈克尔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库pspell获取建议。

也许创建一个最常见的单词数据库(如:狗,房子,城市,数字,水,互联网)。 不需要做大(<10000字)。 然后,当您分解搜索词时,请检查“word”数据库中的单词LIKE搜索词。 然后回应一下建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM