是否可以为 string/uuid-based 主键创建索引以便能够通过相似性进行快速搜索(例如嘈杂的 uuid)?
Is it possible to create indexes for a string/uuid-based primary key to be able to fast search by similarity (e.g. noisy uuids)?
我会给出具体的案例,以便更好地理解。
我有一些代码,我将在这里调用来自 OCR 的 UUID。
例如,在 25 个字符中,有几个被错误识别了。
是否可以在 SQL 数据库中“按相似性索引”UUID 列?
假设每个 UUID 只有一个字符错误并且我执行 25 次查询,SELECT ... LIKE 语句是否已经具有良好的行为?
[吵闹的uuid就不插了,就SELECT编了。]
抱歉,我不知道是否有这样做的内置功能,但您正在尝试做的是一种称为 Levenshtein 距离的算法。看看那个:
您应该修复进入数据库的数据——或者至少拥有原始代码和推算代码。
如果您需要保留原始代码,那么我的建议是 look-up table 包含原始代码和推算代码。此 table 将用于要按实际代码过滤的查询。
举一个具体的例子,如果我有一个包含美国州缩写的列并且其中一个代码是 RA,我不想“自动”弄清楚这是不是:
- AR 向后(阿肯色州)
- RI(罗德岛)
- CA(加利福尼亚州)
- MA(马萨诸塞州)
- 宾夕法尼亚州(宾夕法尼亚州)
- VA(弗吉尼亚州)
- WA(华盛顿)
似乎需要手动操作。
我会给出具体的案例,以便更好地理解。 我有一些代码,我将在这里调用来自 OCR 的 UUID。
例如,在 25 个字符中,有几个被错误识别了。 是否可以在 SQL 数据库中“按相似性索引”UUID 列?
假设每个 UUID 只有一个字符错误并且我执行 25 次查询,SELECT ... LIKE 语句是否已经具有良好的行为?
[吵闹的uuid就不插了,就SELECT编了。]
抱歉,我不知道是否有这样做的内置功能,但您正在尝试做的是一种称为 Levenshtein 距离的算法。看看那个:
您应该修复进入数据库的数据——或者至少拥有原始代码和推算代码。
如果您需要保留原始代码,那么我的建议是 look-up table 包含原始代码和推算代码。此 table 将用于要按实际代码过滤的查询。
举一个具体的例子,如果我有一个包含美国州缩写的列并且其中一个代码是 RA,我不想“自动”弄清楚这是不是:
- AR 向后(阿肯色州)
- RI(罗德岛)
- CA(加利福尼亚州)
- MA(马萨诸塞州)
- 宾夕法尼亚州(宾夕法尼亚州)
- VA(弗吉尼亚州)
- WA(华盛顿)
似乎需要手动操作。