存量数据库 记录 ID 姓名(%50 ) 性别( 10%) 手机号( 20%) 籍贯(%10 ) 电子邮箱( 10%) 1 张三 女 13800001111 山西太原 test@163.com 2 张三 男 13800001111 山西太原 fuck@qq.com 3 李四 男 15611112345 湖南长沙 1561111@qq.com 4 王五 男 17022220000 广东广州 112345@163.com
新增记录 5 李四 女 15611112345 广西桂林 1561111@qq.com
需求是新增记录时做相似性匹配: 规则如下 相似性=(李四==李四)*50% + (男==女)10%+(15611112345==15611112345)20%+(湖南长沙==广西桂林)10%+(1561111@qq.com==1561111@qq.com)10%= 150% + 010% + 120% + 0%10% + 110% = 80% >=80% 按照规则,各字段加权计算,阈值设为 80%时,表示记录 5 和记录 3 是相似的。
存在问题: 现在问题是存量记录表有上“千万”记录,每次新添加记录时需要与存量的记录进行相似度匹配,但是每次都遍历扫描数据库效率太低。 请问有没有什么好的方式 /算法?或者使用其他数据结构代替关系数据库进行记录存储?使得匹配时间控制在 1 分钟级别左右。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.