Mic*_*ack 2 sql oracle search search-engine duplicates
我正在尝试找到一种方法来搜索文本字段以识别可能类似的行,以便我可以确定它们是否是应该合并的重复项.例如,如果我的数据如下所示:
MyText_Column
GROUP BY不起作用,因为没有一个值完全相同,但如果我可以有一个查询返回一行相似的可能性的列表将是很好的.也许有更好的布局,但我想象的是这样的结果:
查询结果
搜索比较Likely_Match
然后结果就像我可以按可能性排序并且可视地扫描以确定结果是否重复.
该UTL_MATCH包有几个方法来做that--我的猜测是,你将要使用的哈罗-温克勒相似度算法.就像是
SELECT a.mytext_column search,
b.mytext_column compare,
utl_match.jaro_winkler_similarity( a.mytext_column, b.mytext_column ) similarity
FROM table_name a,
table_name b
WHERE a.<<primary key>> != b.<<primary key>>
ORDER BY utl_match.jaro_winkler_similarity( a.mytext_column, b.mytext_column ) desc
Run Code Online (Sandbox Code Playgroud)
这将生成N*(N-1)行的结果集,这些行可能是不实用的,这取决于原始数据集中的行数.您可能希望通过仅返回特定搜索词的最佳匹配或仅返回相似度得分大于某个阈值的行来限制事物.
| 归档时间: |
|
| 查看次数: |
2033 次 |
| 最近记录: |