日志搜集分析-- 自定义elasticsearch数据查询
Posted 拖地先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志搜集分析-- 自定义elasticsearch数据查询相关的知识,希望对你有一定的参考价值。
经过之前的工作(,),目前已经完成了数据地图的数据格式化和录入记录,但由于默认的热力图不够酷炫,需要自定义样式。这样就需要用到Elasticsearch的全文检索,检索出数据后,使用php接口格式化数据输出。
一、全文检索
搜索条件(时间,空间)
输出结果(用户数量)
例如,一个小时内,在中国范围内,各个经纬度坐标的,有操作行为的,用户个数。由此需求,可以得到相应的Elasticsearch的搜索语句,如下:
size=0表示不分页
query为搜索主体,其中的必要条件为时间参数,即,搜索此段时间内的所有数据
aggs中相当于spl中的where条件,而其中geo_bounding_box为地理范围,由左上角经纬度点到右下角经纬度点所界定的一个矩形方框。
aggs嵌套,即上层条件的结果上,继续做筛选
geohash_grid表示,按照你定义的精度计算每一个点的 geohash 值而将附近的位置聚合在一起,其中field为目前筛选的的字段, precision为经度,单位为km
最后,通过geo_centroid得到key为location的聚合数据
结果数据格式如下:
aggregations中是我们最终需要的数据
其中location为聚合的经纬度坐标,紧跟着的count则指的是,在此点2km*2km范围之内的用户数。
自此,Elasticsearch中search调用方式清楚了。
二、接口书写
使用Elasticseach的PHP API
确定输入参数:时间范围,空间范围
确定输出数据结构,并格式化数据输出
由于H5页面插件限制,所以需要特定的数据格式。所以最终输出结果如下:
参考文档:
https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_configuration.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html
https://www.elastic.co/guide/cn/elasticsearch/guide/current/geohash-grid-agg.html
以上是关于日志搜集分析-- 自定义elasticsearch数据查询的主要内容,如果未能解决你的问题,请参考以下文章