表格如下
想拿到每一个typeId的最新情况,即对typeId分组,然后没一组内,根据op_time进行排序,如果最后一个数据的operator='D',则该分组不需要返回。上面的数据最终返回
这种需求用ES查询要怎么写呢?
id | typeId | grade | opeartor | op_time
1 | 1 | 1 | I | 2020-10-28 14:21:00
2 | 1 | 3 | U | 2020-10-28 14:22:00
3 | 1 | 3 | D | 2020-10-28 14:23:00
4 | 2 | 1 | I | 2020-10-28 14:21:00
5 | 2 | 4 | U | 2020-10-28 14:23:00
6 | 3 | 2 | I | 2020-10-28 14:21:00
7 | 3 | 3 | U | 2020-10-28 14:24:00
8 | 3 | 1 | U | 2020-10-28 14:23:00
记录每个TypeId的一个日志,其中I代表插入,U代表更新,D代表删除。想拿到每一个typeId的最新情况,即对typeId分组,然后没一组内,根据op_time进行排序,如果最后一个数据的operator='D',则该分组不需要返回。上面的数据最终返回
id | typeId | grade | opeartor | op_time
5 | 2 | 4 | U | 2020-10-28 14:23:00
7 | 3 | 3 | U | 2020-10-28 14:24:00
这种需求用ES查询要怎么写呢?
1 个回复
Memento - Memento
赞同来自: smart8416 、create17
置于再过滤最后一个操作是 `D` 的, 应该只能交给代码处理里, ES 无法对非数值聚合结果进行过滤;