Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP搜索相关结果_Php_Mysql - Fatal编程技术网

PHP搜索相关结果

PHP搜索相关结果,php,mysql,Php,Mysql,我被一个案子缠住了。我想做一个搜索,如果用户犯了一些拼写错误,它将搜索mysql数据库,并返回一个结果,如“你的意思是什么”。我已经使用了levenshtein方法,但是它没有返回预期的结果。 例如,如果我在诸如“苹果”、“豆子”、“鸡汤”之类的项目数组中搜索“鸡肉”;它还给我豆子。有没有更好的办法解决这个问题?我正在使用PHP MYSQL来实现这个功能 任何帮助都将不胜感激。尽管Levenstein距离应该起到作用,但你有没有研究过或尝试过 我使用了similor\u text来表示相似的内容

我被一个案子缠住了。我想做一个搜索,如果用户犯了一些拼写错误,它将搜索mysql数据库,并返回一个结果,如“你的意思是什么”。我已经使用了levenshtein方法,但是它没有返回预期的结果。 例如,如果我在诸如“苹果”、“豆子”、“鸡汤”之类的项目数组中搜索“鸡肉”;它还给我豆子。有没有更好的办法解决这个问题?我正在使用PHP MYSQL来实现这个功能


任何帮助都将不胜感激。

尽管Levenstein距离应该起到作用,但你有没有研究过或尝试过

我使用了
similor\u text
来表示相似的内容,因为它可以返回匹配项之间的相似性百分比。

您可以使用基于哪个发音的“发音相似,产生相同的soundex键”


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

我推荐MySQL全文搜索。 你可以找到更多关于它的信息

您要使用的语法是
MATCH()。。。针对
。 确保使用MyISAM类型的表,并在要搜索的字段上创建索引

希望这有帮助


Bram

可能重复的您可能希望提供一些您尝试过的示例或levenshteins距离不起作用的示例。搜索是一个非常复杂的主题。您可能希望查看一个专用的搜索服务器,例如Solr.Or@sixeightzero:例如,查看代码(从php.net获得)[link]查看示例1。如果将输入项设置为“chicken”,并添加额外的数组项;比如说“鸡汤”,它会返回“豌豆”、“豆子”等。但不是“鸡汤”。嗨,布拉姆,以前实现了全文搜索,但它不会处理键入错误。那么你在找别的东西吗