原来的下载程序使用了MD5算法生成的long型信息指纹,将此long型字段作为源码存储的key值存储到了HDFS中,后续在做基于标题的去重时引入了MessageDigest类提供信息摘要的算法,并将返回的直接数组转换成了16进制字符串,同时将从源码抽取的信息id换成了此算法生成的16进制字符串存储到了solr中。
在后续的界面端做快照功能时,solr中存储的id和HDFS中存储的key不相同,查询源码失败的问题。基于此要进行相关的判断,如果是包含字母的id要重新经过算法计算得到原HDFS中存储的key值,所以第一步就是要判断solr存储的id中是否包含字母。
通过下面的代码判断:
Pattern.compile("(?i)[a-z]").matcher(src).find();
或者:
Pattern.compile("[a-zA-Z]").matcher(src).find();
返回结果是boolen型