PHP搜索相关结果
我被一个案子缠住了。我想做一个搜索,如果用户犯了一些拼写错误,它将搜索mysql数据库,并返回一个结果,如“你的意思是什么”。我已经使用了levenshtein方法,但是它没有返回预期的结果。 例如,如果我在诸如“苹果”、“豆子”、“鸡汤”之类的项目数组中搜索“鸡肉”;它还给我豆子。有没有更好的办法解决这个问题?我正在使用PHP MYSQL来实现这个功能PHP搜索相关结果,php,mysql,Php,Mysql,我被一个案子缠住了。我想做一个搜索,如果用户犯了一些拼写错误,它将搜索mysql数据库,并返回一个结果,如“你的意思是什么”。我已经使用了levenshtein方法,但是它没有返回预期的结果。 例如,如果我在诸如“苹果”、“豆子”、“鸡汤”之类的项目数组中搜索“鸡肉”;它还给我豆子。有没有更好的办法解决这个问题?我正在使用PHP MYSQL来实现这个功能 任何帮助都将不胜感激。尽管Levenstein距离应该起到作用,但你有没有研究过或尝试过 我使用了similor\u text来表示相似的内容
任何帮助都将不胜感激。尽管Levenstein距离应该起到作用,但你有没有研究过或尝试过 我使用了
similor\u text
来表示相似的内容,因为它可以返回匹配项之间的相似性百分比。您可以使用基于哪个发音的“发音相似,产生相同的soundex键”
为了获得更好的结果,首先获得距离最小的单词集(比如2或3),然后对过滤后的单词集应用soundex以获得建议的单词。我在我过去的一个项目中实施,效果很好 我推荐MySQL全文搜索。 你可以找到更多关于它的信息 您要使用的语法是
MATCH()。。。针对
。
确保使用MyISAM类型的表,并在要搜索的字段上创建索引
希望这有帮助
Bram可能重复的您可能希望提供一些您尝试过的示例或levenshteins距离不起作用的示例。搜索是一个非常复杂的主题。您可能希望查看一个专用的搜索服务器,例如Solr.Or@sixeightzero:例如,查看代码(从php.net获得)[link]查看示例1。如果将输入项设置为“chicken”,并添加额外的数组项;比如说“鸡汤”,它会返回“豌豆”、“豆子”等。但不是“鸡汤”。嗨,布拉姆,以前实现了全文搜索,但它不会处理键入错误。那么你在找别的东西吗