不直观的置信值
当数据库定位器运行时,它会尝试查找与文档 OCR 最匹配的记录。您看到的行为的关键是它首先进行实际的模糊搜索,返回满足最小置信度的记录,然后定位器本身进行额外的处理:根据记录是否满足字段来增加或降低记录的置信度,搜索定位器中定义的遮罩或区域设置。
这种行为的好处是内存和处理效率。核心模糊搜索索引可以快速确定哪些记录满足初始置信度阈值,然后Database Locator只需将这些记录加载到内存中并进行后处理。另一种方法是加载所有记录以进行后处理,以防后处理将置信度推高到阈值之上。那会更直观,但效率较低。
可能的配置改进
如果您只打算搜索那一列,而其他列只是您想要返回的数据,那么请确保该列是唯一被索引的列。当您打开数据库的属性时,它会显示带有复选框的字段名称。任何被检查的字段都被编入索引,并且是定位器尝试在文档上查找的内容的一部分。如果您检查了一堆实际上不在文档上的字段,则您的信心可能会降低,特别是如果您的定位器设置“对空字段的惩罚”也有一个非零值。
使用 KSMS 时,无法在 Project Builder 中更改索引列,因为 KSMS 正在构建和提供索引。而是在 KSMS 管理中打开数据库的导入设置,然后查看复选框的“要使用的列”部分。如果您通过上载文件而不是指向 UNC 路径来配置数据库,则需要再次上载它才能更改索引的列。
语境
对于将其视为传统数据库问题的任何人: KTM 中此上下文中的“数据库”从 CSV 或关系数据库中获取记录,并对它们进行索引以进行模糊匹配。这种核心模糊搜索功能有多种用途,其中之一是数据库定位器。
文档提到数据库定位器处理与模糊搜索分开:
脚本帮助主题“特定列中的数据库查找”显示如何使用脚本中的模糊搜索(从脚本窗口:帮助>脚本帮助,然后脚本示例>特定列中的数据库查找),但它也提到了模糊搜索本身与数据库定位器处理的其他一些设置分开。