![]() |
1
2
你正在进行一场长跑比赛。根据这种逻辑,可以索引的字段之间一定有某种相似性。找到一些产生可索引结果的函数,并将其用于每行的搜索空间。
例如,您有一个
如果这还不够,则生成地址第一个字的前两个字母字符、地址第一个字的后两个字母字符、地址中存在的数字的三个“匹配”键。在考虑编辑距离之前,使用三个“匹配”键作为一个筛选功能。 例如,在将“123 Mulberry Lane”与“123 Mlberry Ln”匹配时,步骤如下:
所以,虽然第一个字符winnow会导致地址不被考虑,但是数字和最后一个启发式仍然会捕获它。 |
![]() |
2
0
“编辑距离匹配”生成每行与其他行的矩阵,因此没有可索引的内容。您所能做的就是减少需要比较的记录集。
性能调整是一门科学。如果没有更多关于数据倾斜和分布的细节,我们可以做的更多的是提供一些猜测。
所以,随机猜测:最好将其包含在外部查询中。
另一个随机猜测。即使
这就是为什么soundex()或metaphone等技术很方便:它们提供了可用于相等操作的近似值,并且可以对其进行索引。然而,它们是粗糙的,尤其是不允许某些拼写错误,所以这也是我们需要其他算法的原因。但是,也许您可以实现一个多步骤的方法,使用标记化方法来识别一些匹配,并编辑距离以赢得剩余部分。 |
![]() |
maddy · 如何根据oracle SQL中的某一列值进行排名 1 年前 |
![]() |
kiric8494 · 显示以元音开头和结尾的城市名称 2 年前 |
![]() |
Franz Biberkopf · Oracle:组合子查询和聚合函数 2 年前 |
![]() |
BitLauncher · 甲骨文-如何模拟位列和布尔和/或? 2 年前 |
![]() |
Arifullah · 如何从oracle中的列中删除特定的初始字符? 2 年前 |
![]() |
Anar · Oracle SQL用户定义函数 2 年前 |
![]() |
user1312312 · 如何为一组表编写通用触发器? 2 年前 |