基于数据库生成建议(PHP和MySql)

时间:2012-01-11 08:59:57

标签: php mysql

您能否给我一些提示,如何根据用户输入的字词生成建议?它不是一个拼写错误的东西,我不想当用户输入单词:“hello”如果数据库不包含单词“hello”但单词“helo”或“helol”表示。

谢谢。

3 个答案:

答案 0 :(得分:2)

<强> FYI

您应该查看PHP的levenshtein函数,它会根据分数找到最接近的匹配单词,使用字典文件...我知道您说这不是错误拼写,但字典文件可以是任何内容,您可以有多个,取决于你想如何使用它

答案 1 :(得分:1)

单独使用MySQL会太复杂。您需要使用Sphinx Search(一个独立的全文搜索引擎)之类的东西来索引常用词,然后针对Sphinx运行查询。

http://sphinxsearch.com/forum/view.html?id=5898

有一个相当不错的主题

答案 2 :(得分:1)

您可以使用Soundex function并将提交的字符串与字典数据库进行比较,即:

soundex("Hellllo")       == soundex("Hello");

您需要做的就是将您的建议soundex存储在表格中。然后,当用户提交单词时,您可以在表格中搜索他的soundex哈希,并返回具有相同/紧密代词的单词。

soundex方法有点快,但是如果你需要性能,你的dictionnary表必须编入索引。