/** * 生成特征词的的hash值 * @return */ private BigInteger hash(String keywords) { if (keywords == null || keywords.length() == 0) { return new BigInteger("0"); } else { char[] sourceArray = keywords.toCharArray(); BigInteger x = BigInteger.valueOf(((long) sourceArray[0]) << 7); BigInteger m = new BigInteger("1000003"); BigInteger mask = new BigInteger("2").pow(this.hashbits).subtract( new BigInteger("1")); for (char item : sourceArray) { BigInteger temp = BigInteger.valueOf((long) item); x = x.multiply(m).xor(temp).and(mask); } x = x.xor(new BigInteger(String.valueOf(keywords.length()))); if (x.equals(new BigInteger("-1"))) { x = new BigInteger("-2"); } return x; } }
生成特征词的的hash值
猜你喜欢
转载自blog.csdn.net/qq_20120669/article/details/73188000
今日推荐
周排行