是否可以在 DQS数据质量项目中配置匹配规则以忽略匹配空域?如果两个空域值被认为是 100% 匹配,我觉得很奇怪。当然,我总是可以newid()
在底层 sql 数据源(视图)内的所有空域中写入,但这有点矫枉过正,也许有“正确”的方法可以做到这一点......
问问题
829 次
2 回答
1
遗憾的是,目前不支持此功能,因此仅存在您上面列出的解决方法。
“两条记录对应字段中的空值将被视为匹配”
来源:
http://technet.microsoft.com/en-us/library/hh213071.aspx
实施任何解决方法时的注意事项 - 性能将受到负面影响。您会在使用更大的数据集时更加注意到这一点。
FWIW 我实施的解决方法:
- 将匹配结果保存到表中,包括一列 isMatchingScoreAdjusted 默认 0
- 查找具有空匹配的所有记录并计算调整后的值
- 更新结果
示例过程
DECLARE @GIVEN_NAME FLOAT = 22;
WITH adjustedscore
AS (
SELECT c.MatchingScore
+ case when p.GIVEN_NAME is null and c.GIVEN_NAME is null then -@GIVEN_NAME else 0 end
as [AdjustedMatchingScore]
,c.RecordId
FROM [dbo].[dqs_matches] p
INNER JOIN [dbo].[dqs_matches] c ON c.SiblingId = p.RecordId
WHERE c.IsPivot = 0
AND p.GIVEN_NAME IS NULL
AND c.GIVEN_NAME IS NULL
)
UPDATE m SET MatchingScore = a.AdjustedMatchingScore, isMatchingScoreAdjusted = 1
FROM adjustedscore a
INNER JOIN [dbo].[dqs_matches] m ON m.RecordId = a.RecordId
where m.isMatchingScoreAdjusted = 0
于 2014-03-31T00:20:11.583 回答
0
我找到了可以接受的解决方案。复合域内的空字段不被视为匹配。
顺便说一句,如果两条记录的所有复合域字段都是空白的,那么这些域被认为是 100% 匹配的。但我对此很满意。
于 2013-03-21T19:48:13.363 回答