3

我们正在做很多工作,试图协调大约 1,000 个重复的制造商名称和 1,000,000 个重复的零件编号。出现的一件事是如何“匹配”诸如“有限”与“有限公司”之类的东西。与“有限公司”

目的是让应用程序将这些匹配的项目协调为标准格式。所以:

ACME 有限公司 ACME 有限公司 ACME 有限公司

应该全部和解到 ACME Ltd.

这也将用于防止将来输入其他重复项。

有关如何在 SQL Server 中完成此模式匹配的任何建议?任何已知的算法来查找具有映射等价的项目等......?

谢谢!

埃里克。

4

2 回答 2

3

一张表格如何在一个列中列出您想要的内容并在下一列中列出变体?

Ltd   Limited 
Ltd   Ltd.
St    Street
St    Str.

然后,如果您在第二列中找到匹配项,则将其更改为第一列。当您找到其他替代方案时,可能需要多次迭代。

于 2011-01-19T23:59:00.127 回答
2

使用SQL Server 全文搜索,您可以使用同义词:

对于每种全文语言,SQL Server 还提供了一个文件,您可以在其中选择定义特定语言的同义词以扩展搜索查询的范围(同义词库文件)。

在您的情况下,您可以添加如下部分:

 <expansion>
         <sub>Limited</sub>
         <sub>Ltd</sub>
         <sub>Ltd.</sub>
 </expansion>

这是一个链接,其中详细介绍了如何修改同义词库文件。这可能适用于您正在尝试做的事情......

SQL Server 还通过使用LIKE. 我建议查看它提供的选项,看看它们是否足以满足您的需求。

如果LIKE还不够,您可以随时查看创建允许您使用正则表达式的 CLR 存储过程或 UDF。这将允许您匹配更复杂的模式......

于 2011-01-19T23:56:55.840 回答