5

有趣的挑战;我的客户在 SQL 数据库中输入了一些产品信息。产品是俄罗斯著名作曲家拉赫玛尼诺夫的一幅画。所以该名称在描述字段中。现在,只有少数搜索产品的客户确切知道如何拼写这个名称,但大多数时候拼写错误。除了拼写错误之外,还有很多国际客户只是把这个名字写得完全不同,比如RachmaninowRahmaninovРахманінаў

如果我将这些拼写错误或翻译中的任何一个放在谷歌中,它(几乎)总是知道如何更正它并将我直接重定向到正确的页面。

有谁知道我在产品搜索中获得这种魔力的可能性是什么?我可以使用一些 API 吗?一些我不知道的超级自由文本选项?或者 ...

4

1 回答 1

2

我们以相当成功的方式解决了一个类似的问题:通过电话提供的姓名搜索人(德语姓名)。

例如:非常常见的德国姓氏“Schmidt”、“Schmitt”、“Schmied”、“Schmid”、“Schmit”和“Schmiedt”在通过声音给出时几乎不可能分开。将其与“Sylvia”或“Silvia”或“Sylvya”的名字结合起来,并且呼叫者说“嗨,我是 Sylvia Schmidt,我忘记了我的客户号码”是不可能被快速找到的。

我们的解决方案是列出一个 synophones 列表,例如(在伪代码中,用于德语):

{consonant}+ := {consonant}
ie := i
ii := i
dt* := t
y|j := i
{vocal}v := {vocal}f

等等,你得到了漂移。现在我们将 Synophone 翻译的字符串与原始字符串一起存储,以使搜索成为可能。这真的很好用。

我知道 MySQL 有Soundex()英文字符串的功能。我希望 MSSQL 有类似的东西。

于 2012-06-26T22:49:37.630 回答