SSIS 中的术语查找转换用于在字符串或文本中查找术语。它使用参考表(包含术语)来查找源数据中匹配的句子,并计算术语在源数据行中重复的次数。
SSIS 术语查找转换默认在转换输出中添加两个额外的列,称为“术语”(Term)和“频率”(Frequency)。SSIS 术语包含来自查找表的术语,而频率包含短语在输入数据集中重复或出现的次数。
提示:SSIS 术语查找转换仅允许 DT_WSTR 和 DT_NTEXT 数据类型的列执行术语查找。如果您的输入列与这两种类型不同,请使用数据转换将其他数据类型转换为 DT_WSTR 和 DT_NTEXT 数据类型。
例如,如果您的公司有 100 种产品,并允许用户评价您的产品。假设您每天收到 2000 条评论,那么您将如何找到哪条评论属于哪种产品?为了解决这类问题,SSIS 引入了术语查找转换。使用它,您可以找到哪一行是产品 1 的评论,哪一行是产品 90 的评论。
提示:请参阅术语提取转换文章以了解术语提取技术。更多转换 >> 点击此处。
术语查找转换匹配技术
SSIS 术语查找转换使用以下规则对源数据执行术语查找
- 如果参考表中包含单词的单数形式,SSIS 术语查找转换会将源数据中单词的单数和复数形式都视为单数形式。例如,如果术语查找表包含“Employee”,而我们在源数据中有“Employee”和“Employees”这两个术语,SSIS 术语查找转换会将两者都视为与查找术语匹配。
- 如果参考表中包含单词的复数形式,术语查找转换会将源数据中单词的单数和复数形式视为单独的术语。例如,如果术语查找表包含“Employees”,而我们在源数据中有“Employee”和“Employees”这两个术语,术语查找转换将分别计算“Employee”和“Employees”。
- 如果我们配置 SSIS 术语查找转换以执行区分大小写的匹配,那么“Employee”将与“EMPLOYEE”分开处理。如果“Employee”是句子中的第一个词,那么术语查找转换会将“Employee”和“Employee”视为相同的术语。
SSIS 中的术语查找转换示例
在此示例中,我们将向您展示如何在 SSIS 中使用示例数据配置术语查找转换。
这是我们的查找源表

这是我们来自数据库的查找表。

步骤 1:在 BIDS 中创建一个新的项目,使用 Integration Service 项目模板。将数据流任务拖到控制流区域,并根据您的需求重命名。

双击它,它将打开数据流选项卡。
步骤 2:将 OLE DB 源、术语查找转换和 OLE DB 目标拖放到数据流区域。

步骤 3:双击数据流区域中的 OLE DB 源将打开连接管理器设置。它提供了输入 SQL 语句的空间。或者,您可以从下拉列表中选择表。

步骤 4:单击“列”选项卡以验证列。在此选项卡中,您可以取消选中不需要的列。

步骤 5:单击“确定”并编辑 SSIS 术语查找转换。
在“参考表”选项卡中,配置 OLE DB 连接管理器以引用数据库,然后选择要添加为参考表的表(此处为术语查找转换表)。
提示:此 SSIS 术语查找转换仅支持 OLE DB 连接管理器 来连接参考表。

注意:此转换仅接受 Unicode 字符串 [DT_WSTR] 或 Unicode 文本流 [DT_NTEXT] 作为其数据类型。
步骤 6:使用“术语查找”选项卡将输入列映射到参考表中的查找列,并为每个输出列提供别名。

使用“转换编辑器”对话框的“高级”选项卡来指定查找是否应区分大小写。

从下面的屏幕截图中,您可以看到转换上有一个警告符号。它提示错误输出未连接。您可以通过配置错误输出来消除警告符号。因此,双击“配置错误输出”按钮将打开一个新窗口来设置错误输出。
此转换的默认配置是重定向错误行。您可以通过连接错误输出或将默认行为更改为“忽略失败”或“失败组件”来摆脱此警告。我将将其更改为“忽略失败”。

单击“确定”以完成转换的配置。
步骤 7:现在,我们需要提供目标的服务器、数据库和表详细信息。因此,双击 OLE DB 目标并提供所需信息。

从上面的屏幕截图中,可以看到我们选择了数据库作为目标数据库,并将 [Term Lookup Transformation Output] 表作为目标表。
步骤 8:单击“映射”选项卡以检查源列是否与目标列正确映射。

单击“确定”以完成我们 SSIS 术语查找转换包的设计。让我们运行该包。

让我们打开 SQL Server Management Studio 并检查结果。

从上面的屏幕截图中,您可能会看到此转换显示了句子中的术语及其频率(术语重复的次数)。