首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP MySQL搜索建议

PHP MySQL搜索建议
EN

Stack Overflow用户
提问于 2011-08-27 19:13:47
回答 3查看 3.8K关注 0票数 5

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

此外,这个建议应该是由用户上传的内容。用户可以将其内容的标题保留为“Michael的活动2011年5月”,并且应该为单个单词生成建议。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-27 19:28:47

您可以使用SOUNDEX搜索听起来相似的名称,如下所示:

代码语言:javascript
运行
复制
SELECT * FROM users WHERE SOUNDEX(name) = SOUNDEX(:input)

或者像这样

代码语言:javascript
运行
复制
SELECT * FROM users WHERE name SOUNDS_LIKE :input

(这是完全等效的)

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

代码语言:javascript
运行
复制
SELECT * FROM users WHERE sound_equivalent = :input_sound_equivalent

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

票数 9
EN

Stack Overflow用户

发布于 2011-08-27 19:31:35

如果你没有搜索结果,你也可以使用php库pspell来获取建议。

票数 2
EN

Stack Overflow用户

发布于 2011-08-27 19:23:07

也许可以创建一个最常用单词的数据库(比如:狗,房子,城市,数字,水,互联网)。不需要把它做得很大(<10000字)。然后,当你分解搜索词时,在"word“数据库中查找像搜索词这样的词。然后,只需呼应建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7214163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档