Mysql 在数据库中搜索时出现键入错误
我们的应用程序中有数据库,其中包含有关曲目或剧集的信息,如标题、描述等。 假设我有标题“يذب㶋㶋ممدة”,并且用户搜索带有单词“إى”,在阿拉伯语中字母“ا”与“إ”不同,因此搜索不会给我任何结果,因为该单词不存在 如何在包含这些键入错误的同时在数据库中搜索 服务器是php,数据库是mysql。 如果您知道需要查看的指南或帖子,将不胜感激。 对不起,如果这是一个错误的地方问问题。谢谢。使用soundex(列名称)=“搜索词”使用返回的语音分数对这两个单词进行比较这只适用于英语。 Soundex由Robert C.Russell和Margaret King Odell开发,并于1918年和1922年获得专利 美国国家档案和记录管理局(NARA)负责美国政府使用的Soundex的正式实施 在其他语言中,您必须创建自己的实现来比较两个单词。由于完整的语音实现过于复杂,您可以创建一个函数,在该函数中比较单词,并使用运算符说明位置和可能丢失的字母 部分示例:Mysql 在数据库中搜索时出现键入错误,mysql,sql,database,Mysql,Sql,Database,我们的应用程序中有数据库,其中包含有关曲目或剧集的信息,如标题、描述等。 假设我有标题“يذب㶋㶋ممدة”,并且用户搜索带有单词“إى”,在阿拉伯语中字母“ا”与“إ”不同,因此搜索不会给我任何结果,因为该单词不存在 如何在包含这些键入错误的同时在数据库中搜索 服务器是php,数据库是mysql。 如果您知道需要查看的指南或帖子,将不胜感激。 对不起,如果这是一个错误的地方问问题。谢谢。使用soundex(列名称)=“搜索词”使用返回的语音分数对这两个单词进行比较这只适用于英语。 Sounde
SELECT @IsSimilar = 1 WHERE 'hello' LIKE 'Hel_o'
-- the underscore in TSQL matches a single character.
通常,“糟糕”的搜索只会一无所获,这是预期的行为。然而,如果您想允许输入错误,您可能需要查看Soundex。在使用这种方法的英语中,“Phil”会同时找到“Phil”和“Fill”等。不幸的是,我需要它,因为我们意识到许多用户正在犯那些导致结果不佳的打字错误。谢谢你的数据库是什么正如我建议的,Soundex呢?当然有阿拉伯语版本的吗?你也可以看看是否有阿拉伯语版本的变音算法。它比Soundex更坚固。除此之外,您可以实现Levenshtein编辑距离算法,但我担心它会非常慢,因为它需要表扫描。尝试一下。可能的话,我会稍后尝试,并在测试后通知您。非常感谢。