建议其他查询古式拼字例如Google的“您是不是要”

问题描述

过去,我设法实现了与SOUNDEX类似的功能,可以近似实现该功能

马丁(Martin),马丁(Martyn)和马丁(Martine)从产生相同的输出SOUNDEX

您可以包括SOUNDEX比赛的所有结果,也可以选择他们要求的结果,然后select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var)作为您的“建议”。

作为一种优化,您可以在搜索字段上预先计算SOUNDEX并将其保留为索引列,以避免进行表扫描。

解决方法

我的客户有一个跨越400年的房地产记录数据库。他们有兴趣根据用户的数据向用户提出其他拼写建议。

我假设在这种情况下,该表将落在一个表上,该表具有用于“ Martin”的行以及对“ Martyn”和“ Martine”的建议等。

有谁知道将索引其数据的第三方解决方案?

编辑

每个魔术师的答案都震撼了SOUNDEX()

SELECT `Last` FROM `Names` 
WHERE SOUNDEX(`Last`) RLIKE SOUNDEX ('Martin')
GROUP BY `Last`

产生这个漂亮的小清单:

Martens
Martenstein
Martin
Martina
Martindale
Martine
Martineau
Martines
Martinet
Martinez
Martini
Martino
Martinstein
Mertens
Miradona
Moret and Marchand
Mortimer
Morton