select t.keyword,count(t.id),substr(t.jampurl,instr(t.jampurl,'.')+1,(instr(t.jampurl,'.',-1)-instr(t.jampurl,'.')-1))
from
data_acquisition_2008_08_11 t
where
t.keyword is not null
and t.keyword not like 'http://%'
group by t.keyword,substr(t.jampurl,instr(t.jampurl,'.')+1,(instr(t.jampurl,'.',-1)-instr(t.jampurl,'.')-1))
order by count(t.id) desc
这段SQL代码是用来统计 关键字的,其中关键字划分两种状态,
- 一种是从那里过来的由substr(t.jampurl,instr(t.jampurl,'.')+1,(instr(t.jampurl,'.',-1)-instr(t.jampurl,'.')-1)) 得到搜索引擎
- 一种是这个关键字的点击量由count(t.id)表示
存在几个问题:关键字可能出现乱码,解决方法案有两个
- 重新把原始数据编码
- 对出现乱码的舍去
我选择第2种方案,因为不正确数据量不会造成统计影响.
JAVA判断是否是汉字的方法:
方法一
public boolean vd(String str){
char[] chars=str.toCharArray();
boolean isGB2312=false;
for(int i=0;i<chars.length;i++){
byte[] bytes=(""+chars[i]).getBytes();
if(bytes.length==2){
int[] ints=new int[2];
ints[0]=bytes[0]& 0xff;
ints[1]=bytes[1]& 0xff;
if(ints[0]>=0x81 && ints[0]<=0xFE && ints[1]>=0x40 && ints[1]<=0xFE){
isGB2312=true;
break;
}
}
}
return isGB2312;
}
方法二
Matcher m = Pattern.compile("[\u4e00-\u9fa5]").matcher(str);