给你一个含有1亿个手机号码的文件,如何快速的查找某个手机号码?

六只猫 发布于 08/21 14:10
阅读 1K+
收藏 0

给你一个含有1亿个手机号码的文件,如何快速的查找某个手机号码?

加载中
2
ljkyhh
ljkyhh

手机号前三位,中四位,后四位做索引呗

0
uaisunshine
uaisunshine

大量数据储存都分区分片了,根据手机号分20个表后,有索引,直接秒查就好了

0
innerloop
innerloop

要看基础是啥,如果是数据库
0)传统数据库,就需要索引+拆表  基本上就能做到最优,但是肯定查询需要时间
1)文件系统 比如xml等,可以考虑 Solr 等 文本检索的这种 会快很多
2)分布式 数据库 1亿数据,节点够多 ,不算啥

0
JasonWcx
JasonWcx

首先要建立号码特征信息,依据这些信息进行索引;思路1:号码分区索引,2:将号码的每位数值直接求和可以得出一个索引值,3,计算出奇数排列规则,也可以得出一个索引

 

 

0
小美玲
小美玲

看样子是想问市面上有哪些索引类型,每种索引的索引方式。

以及手机号有什么特征,如何利用这个特征配合索引,把算法描述出来。

0
灵魂架构师
灵魂架构师

sphinx 文本导入,秒查

0
Strutsz
Strutsz
先按大到小排下单独保存为另一个文件,然后用折中查找法去查找
0
建安七子
建安七子

选什么技术要看你的业务是什么

如果仅仅是做黑名单,而且支持一定的容错,那就直接布隆过滤器

如果是用进行手机号相关业务信息的查询,如果是全文匹配,效率要求高,可以用关系型数据库+分库分表。效率要求不高或需要startwith,可以用hbase,好好设计一下rowkey。如果是模糊匹配且有一定的格式,比如:133****2255,可以用ES加自定义分词。

如果不要求性能且业务丰富,各种不同的查询,建议spark

 

如果仅仅是算法,而且是全字串查找,那就逆序之后建trie树

0
缺一不可
缺一不可

建议去看看数据库索引,一个概念,看自己的选用。

0
xmwgp
xmwgp

正则表达式

返回顶部
顶部