PHP搜索相关结果

时间:2012-07-24 12:23:42

标签: php mysql

我遇到了一个案子。我想要进行搜索,如果用户犯了一些拼写错误,它将搜索mysql数据库并返回“你是不是某事”这样的结果。我已经通过了levenshtein方法,但它没有返回预期的结果。 例如,如果我在“苹果”,“豆”,“鸡汤”等项目中搜索“鸡肉”;它让我回来了。有没有更好的方法来解决这个问题?我正在使用PHP MYSQL来实现此功能。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

虽然Levensteins距离应该可以解决问题,但是您是否考虑了similar_text()soundex()

我已将similar_text用于类似的事情,因为它可以返回匹配之间的相似性百分比。

答案 1 :(得分:0)

您可以使用Soundex基于发音“发音类似地生成相同的soundex键”。

为了获得更好的结果,首先获得具有最小距离(例如2或3)的单词集,然后在过滤的单词集上应用soundex以获得建议的单词。我在我过去的一个项目中实施,效果很好。

答案 2 :(得分:0)

我建议使用MySQL全文搜索。 您可以找到有关它的更多信息here

您要使用的语法是MATCH() ... AGAINST。 请务必使用MyISAM类型的表,并在要搜索的字段上创建索引。

希望这有帮助,

的Bram