开发者社区> 沉默术士> 正文

Solr/Lucene日志分析-查询热点词-脚本工具

简介:
+关注继续查看

solr/lucene 在中文搜索使用中,会输出非常多的类似下面的内容:

2012-04-24 00:00:01,396 INFO
[org.apache.solr.core.SolrCore] - [XXXX-0] webapp=null path=/select
params={q=status:0+AND+(img_file_id:(++12333018751568476))&timeAllowed=2000sort=gmtcreate+desc&rows=60&start=0}
hits=44 status=0 QTime=0


这部分log 包含了查询条件,其中最有价值之一的就是中文词,大量的查询聚集出用户的查询喜好。

对这些log的快速、低成本分析非常有助于应用中运营活动的推广。体现搜索引擎的数据密集价值之一!

更深入的挖掘比如,带上性别信息、行业信息,就可以深入掌握用户关注什么、行业动态是什么等商业信息。

这也是很多搜索引擎在广告之外的另一项收入。

下面提供一种基于脚本的针对solr/luene log中。查询条件中的中文词提取并总计排序。

针对单个文件的统计输出,批量处理,添加一个find,然后循环文件即可。



注意事项:

   
这个脚本在1G左右单个log文件解析时,时间大约2分钟。

   
在解析期间,服务器load明显增多,在线解析log需要避开服务器高峰期

   
解析调试需要注意编码

   
中英文混合时,英文部分会被忽略

   
有些标点符号以及一些特殊字符在不同版本、不同环境下会有所不同,不影响总体统计分析结果

    grep (GNU
grep) 2.5.1

脚本解释

    grep ‘webapp’ $1  //接受参数
在命令行下 执行  ./jiaobenName.sh 
query.log

   | awk ‘{print $9}’ // 提取patch
之后的内容

   | awk -F “&”
‘{print $1}’ // 提取patch中查询串,去掉其他条件信息

   | echo -e “$(sed ‘s/+/ /g;
s/%/\x/g’)”  // decode log

   | sed
‘s/[!-~a-zA-Z0-9=:|-]/ /g’  //英文部分用空格替换

   | sed ‘s/ /n/g’ | grep -v
‘^$’  //空格用n 替换,并去掉重复n

   | awk ‘{count[$0]++} END
{for(k in count) print count[k],k}’ 
//统计单词词频

   | sort -k1
-nr  //按照词频降序

   >
“/home/yingyuan.lyq/tw$1” //最终结果保存路径




#! /bin/sh

if [ -z “$1” ]

then

       
echo “need file”


       
exit 1


fi

 

grep ‘webapp’ $1 | awk ‘{print
$9}’ | awk -F “&” ‘{print $1}’ | echo -e “$(sed
‘s/+/ /g; s/%/\x/g’)” | sed ‘s/[!-~a-zA-Z0-9=:|-]/ /g’ | sed
‘s/ /n/g’ | grep -v ‘^$’ | awk ‘{count[$0]++} END {for(k in count)
print count[k],k}’ | sort -k1 -nr >
“/home/yingyuan.lyq/tw_$1”

本文来源于"阿里中间件团队播客",原文发表时间"  2012-05-01 "

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)(一)
【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)(一)
35 0
【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)(三)
【嵌入式开发】 嵌入式开发工具简介 (裸板调试示例 | 交叉工具链 | Makefile | 链接器脚本 | eclipse JLink 调试环境)(三)
24 0
日志分析工具
除了Logsufer外,其它此类工具还包括Webfwlog和WallFire项目的wflogs
463 0
lucene 查询语法
Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html   新版6.0.0可见 : http://lucene.apache.org/core/6_0_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.ht
1247 0
+关注
5518
文章
253
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载