生成错误的单词(汽车品牌/型号)

时间:2013-08-18 05:29:04

标签: php mysql fuzzy-search

我正在开发模糊搜索机制。我有汽车品牌/型号和城市数据库(mysql)(英文和俄文名称) - 约1000项。用户可以输入错误或转换的单词。现在我从db中检索所有这些单词,并将循环中的每个单词与用户输入的单词进行比较(使用livenstein距离和其他函数)。 有没有办法生成每个单词的多种形式(汽车品牌/型号)+有错误的单词,因为我想从db中检索这些单词(使用类似的sql运算符)。例如:我有汽车品牌:丰田和我想生成 - Tokota,Tobota,Toyoba,Tayota,Тойота,Токота,Тобота(俄语) - 每个单词的许多形式。用户可以输入任何一个单词,我可以发现它是丰田的意思。

1 个答案:

答案 0 :(得分:2)

嗯,MySQL中有一个名为SOUNDEX的函数。我不知道这是你需要的。 例如:

SELECT SOUNDEX('Toyyota') == SOUNDEX('Toyota')

这是来自MySQL文档

  

从str返回soundex字符串。听起来差不多的两根琴弦   同样应该有相同的soundex字符串。标准的soundex字符串   是四个字符长,但SOUNDEX()函数返回一个   任意长串。您可以在结果上使用SUBSTRING()来获取   一个标准的soundex字符串。 str中的所有非字母字符都是   忽略。 A-Z范围之外的所有国际字母字符   被视为元音。

     

目前实施的这项功能旨在与之合作   仅限英语的字符串。其他字符串   语言可能无法产生可靠的结果。

参考:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_soundex