先挖坑,后填。
0.我用elasticsearch做了哪些事
数据来源:通过logstash实时导入elasticsearch,一类 mysql 中项目信息;一类日志信息
常用查询写法
1.做某些字段的筛选的查询、统计等
- 某个项目访问量
- 某个渠道来的访问量
- 聚合搜索热门词汇
- 统计某篇帖子访问量
2.从mysql来的数据
- 猜你喜欢,根据用户捐赠过的项目名字,查询在项目名称和描述字段中,与之较接近的前多少项目。
一会儿贴查询sql
写个博客,我太难了,公司条件不允许,只能拍照。
1.懒人用法,包装Restapi。考虑到java 的api 不太熟悉,反而在RESTful下调用SQL比较得心应手的情况下,封装了rest请求
图三,将es 地址写入配置文件,通过ClasspathResource拿到配置文件,再文件中读取es地址路径,ESutil类封装了es rest请求,postEs方法有两个参数url和body,url用来放请求的索引地址,body放ES的请求sql,方法里面封装http请求,并将返回结果解析为json对象。这样每次使用只需要调这个方法,传两个参数即可。
图1,是处理返回结果的解析封装,这块没处理好,不够通用,对于单个搜索和聚合的处理是不同的。
图2,是实际的请求sql.
3.看了一篇帖子的醒悟,一直错用了Elasticsearch:https://zhuanlan.zhihu.com/p/60458049
之前公司使用场景:将全量ngiNx采集的h5和app等访问日志通过logstash写入elasticsearch,在此基础上做,查询统计、猜你喜欢、热门搜索、热门帖子,帖子点击率等操作,这样其实很多日志数据并不关心,还占用了大量cache资源,尤其是在做猜你喜欢时,将mysql 实时增量数据导入el,字段多大20多,实则没太大意义,看过后只保存了重要的字段信息,日后引入hbase存储不太经常访问的字段试下。
更多相关:https://www.iteblog.com/archives/tag/elasticsearch/
4.最近在深举办的开源社区的meetup活动小结