FUZZYJOIN 命令
使用模糊匹配将来自两个 Analytics 表的域合并为单个新的 Analytics 表。
语法
FUZZYJOIN {DICE PERCENT 百分比 NGRAM n 元语法长度|LEVDISTANCE DISTANCE 值} PKEY 主键域 SKEY 辅助键域 {FIELDS 主域|FIELDS ALL} <WITH 辅助域 |WITH ALL> <IF 测试> <OPEN> <FIRSTMATCH> TO 表名称 <WHILE 测试> <FIRST 范围|NEXT 范围> <APPEND>
说明
您不能在本地针对服务器表运行 FUZZYJOIN命令。
您必须完整指定 FUZZYJOIN 命令名称。 您不能缩略它。
参数
| 名称 | 描述 |
|---|---|
| DICE PERCENT 百分比 NGRAM n 元语法长度 | LEVDISTANCE DISTANCE 值 |
要使用的模糊匹配算法。 DICE 使用 Dice 系数算法
LEVDISTANCE 使用编辑距离算法
|
| PKEY 主键域 |
主表中的字符键域或表达式。 您只能指定一个主键域。 |
| SKEY 辅助键域 |
辅助表中的字符键域或表达式。 您只能指定一个辅助键域。 |
| FIELDS 主域 | FIELDS ALL |
要在联接输出表中包括的来自主表的域或表达式。
说明 如果您想要将主键域包括在联接表中,则必须明确指定它。 指定 ALL 也会包括它。 |
|
WITH 辅助域 | WITH ALL 可选 |
要在联接输出表中包括的来自辅助表的域或表达式。
说明 如果您想要将辅助键域包括在联接表中,则必须明确指定它。 指定 ALL 也会包括它。 |
|
IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。 仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 说明 IF 条件可以引用主表、辅助表或者两者。 |
|
OPEN 可选 |
在命令执行后打开该命令创建的表。 仅当该命令创建输出表时有效。 |
|
FIRSTMATCH 可选 |
请指定每个主键值仅被联接到任何辅助键匹配的第一个实例。 如果第一个实例恰好是精确匹配,则主键值的任何后续模糊匹配都不会被包括在联接输出表中。 如果您省略 FIRSTMATCH,则 FUZZYJOIN 的默认行为是将每个主键值联接到任何辅助键匹配的所有实例。 如果您只想知道两个表之间是否存在匹配(精确或模糊),并且您想要减少识别所有匹配所需的处理时间,则 FIRSTMATCH 是有用的。 如果您确信对于每个主键值,在辅助表中最多只存在一个匹配,您还可以使用 FIRSTMATCH。 说明 FIRSTMATCH 仅可作为 ACLScript 参数。 该选项在 Analytics 用户界面中不可用。 |
| TO 表名 |
要将命令结果发送到的位置:
|
|
WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。 该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。 |
|
FIRST 范围 | NEXT 范围 可选 |
要处理的记录数:
请使用范围指定要处理的记录数。 如果您省略 FIRST 和 NEXT,则会默认处理所有记录。 |
|
APPEND 可选 |
将命令输出附加到现有文件的末尾,而不是覆盖现有文件。 说明 您必须确保命令输出的结构和现有文件完全相同:
Analytics 将输出附加到现有文件,而无论其结构如何。 如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。 |
|
ISOLOCALE 区域设置代码 可选 |
说明 仅在 Unicode 版 Analytics 中可用。 采用语言_国家/地区格式的系统区域设置。 例如,要使用加拿大法语,请输入 fr-ca。 使用以下代码:
如果您不使用 ISOLOCALE,则会使用默认系统区域设置。 |
示例
使用模糊匹配联接两个表,以便发现可能还是供应商的员工
下面的示例使用地址作为公共键域(Address 域和 Vendor_Street 域)联接 Empmast 表和 Vendor 表。
FUZZYJOIN 命令创建一个包含精确匹配或者模糊匹配主记录和辅助记录的新表。 结果是任何具有相同地址或者类似地址的员工和供应商的列表。
使用 Dice 系数算法执行模糊联接
OPEN Empmast PRIMARY OPEN Vendor SECONDARY FUZZYJOIN DICE PERCENT 0.8000 NGRAM 2 PKEY Address SKEY Vendor_Street FIELDS Employee_Number First_Name Last_Name Address WITH Vendor_Number Vendor_Name Vendor_Street OPEN TO "Employee_Vendor_Match"
使用编辑距离算法执行模糊联接
OPEN Empmast PRIMARY OPEN Vendor SECONDARY FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Address SKEY Vendor_Street FIELDS Employee_Number First_Name Last_Name Address WITH Vendor_Number Vendor_Name Vendor_Street OPEN TO "Employee_Vendor_Match"
包括所有域
此版本的 FUZZYJOIN 命令在联接输出表中包括主表和辅助表中的所有域。
OPEN Empmast PRIMARY OPEN Vendor SECONDARY FUZZYJOIN LEVDISTANCE DISTANCE 5 PKEY Address SKEY Vendor_Street FIELDS ALL WITH ALL OPEN TO "Employee_Vendor_Match"
备注
说明
有关此命令工作原理的详细信息,请参见 Analytics 帮助。
区分大小写
FUZZYJOIN 命令不区分大小写,而无论您使用哪种模糊匹配算法。 因此,"SMITH" 等效于 "smith".
前导和后继空白
FUZZYJOIN 命令自动除去域中的前导和后继空白,而无论您使用哪种模糊匹配算法。 指定主键域和辅助键域时,无须使用 TRIM( ) 或 ALLTRIM( ) 函数。