ElasticSearch分组聚合分页
======
类似SQL里面`group by`后分页输出列表。
这里需要分成两个步骤,一个是计算总数,第二个是输出列表。
### 数据场景:
展示一个车主列表,输入关键字,可以通过车主的姓名、车辆的车牌来搜索出对应的车主数据列表。
添加一个车辆索引:`car`,里面包括车主姓名:`name`,车主id:`uid`,车牌:`car_no`
因为车主和车辆是一对多的关系,所以我们在车辆索引里面搜索车主的时候需要对uid去重,这里就用到了聚合。
### 计算聚合桶的个数
方法就是用`cardinality`聚合和`sum_bucket`聚合结合起来计算。
```json
{
"size": 0,...
发布日期:
2020-10-28
分类:
数据库
浏览量:
4056
我这里说的日志是应用日志,比如Web api 出现的一些异常,错误信息等,收集到一起,方便查询检索。
基本架构是,应用把出现的异常错误信息发送到MQ,再存储到数据库,然后提供一个web前端可以查看和检索。
ELK的主要组件如下:
- elasticsearch:存储数据的地方
- kibana:可视化数据的web前端
- logstash:数据中转的地方,可以收集数据,过滤转换之后存储起来,输入和输出都可配置,默认是elasticsearch,也可以是其他数据库。
- beats:这个是收集特定数据的一组轻量级工具,可以单独安装用来收集特定数据,比如nginx的日志,系统日志,或者是系统监控信息等,这组工具的信息可以直接写入到`elasticsearch`,也可以通过...
发布日期:
2018-11-05
分类:
数据库
浏览量:
3275