码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • es 分组后排序 再分页


    1. //获取最近时间的一条数据
    2. TopHitsAggregationBuilder maxTime = AggregationBuilders.topHits(maxField).sort(maxField, SortOrder.DESC).size(1);
    3. //根据groupField分组
    4. TermsAggregationBuilder termsAggregationBuilder =
    5. //首先是分组 AggregationBuilders.terms(groupField).field(groupField).subAggregation(maxTime).
    6. size(10000);
    7. //获取最大的时间为了排序去做的聚合
    8. MaxAggregationBuilder field = AggregationBuilders.max("maxSort").field("msgSendTime");
    9. termsAggregationBuilder.subAggregation(field);
    10. //这个地方的排序必须要用 一个number类型的聚合去排序
    11. FieldSortBuilder fieldSortBuilder=new FieldSortBuilder("maxSort").order(SortOrder.DESC);
    12. termsAggregationBuilder.subAggregation(new BucketSortPipelineAggregationBuilder("pageAndSort",
    13. Lists.newArrayList(fieldSortBuilder)).from(msgListReqDTO.getStartIndex()).size(msgListReqDTO.getPageSize()));
    14. //设置 searchQuery
    15. searchSourceBuilder.query(boolQueryBuilder).aggregation(termsAggregationBuilder).
    16. sort(maxField, SortOrder.DESC).size(0);
    17. request.searchType(SearchType.DEFAULT).source(searchSourceBuilder);
    1. GET intelligent-core_message_es_index/_search
    2. {
    3. "size": 0,
    4. "query": {
    5. "bool": {
    6. "must": [{
    7. "match": {
    8. "sessionStatus": {
    9. "query": "END"
    10. }
    11. }
    12. }, {
    13. "match": {
    14. "userId": {
    15. "query": "20220822151440349572086684327936"
    16. }
    17. }
    18. }],
    19. "must_not": [{
    20. "match": {
    21. "sendRole": {
    22. "query": "SYSTEM_VISITOR"
    23. }
    24. }
    25. }, {
    26. "terms": {
    27. "sendRole": ["SYSTEM_VISITOR", "SYSTEM_USER"]
    28. }
    29. }],
    30. "adjust_pure_negative": true,
    31. "boost": 1.0
    32. }
    33. },
    34. "sort": [{
    35. "msgSendTime": {
    36. "order": "desc"
    37. }
    38. }],
    39. "aggregations": {
    40. "visitorId": {
    41. "terms": {
    42. "field": "visitorId",
    43. "size": 10000,
    44. "order": [{
    45. "_count": "desc"
    46. }, {
    47. "_key": "asc"
    48. }]
    49. },
    50. "aggregations": {
    51. "msgSendTime": {
    52. "top_hits": {
    53. "from": 0,
    54. "size": 1,
    55. "sort": [{
    56. "msgSendTime": {
    57. "order": "desc"
    58. }
    59. }]
    60. }
    61. },
    62. "maxSort": {
    63. "max": {
    64. "field": "msgSendTime"
    65. }
    66. },
    67. "pageAndSort": {
    68. "bucket_sort": {
    69. "sort": [{
    70. "maxSort": {
    71. "order": "desc"
    72. }
    73. }],
    74. "from": 15,
    75. "size": 5
    76. }
    77. }
    78. }
    79. }
    80. }
    81. }

  • 相关阅读:
    007 OpenCV霍夫变换
    #gStore-weekly | gAnswer源码解析 调用NE模块流程
    计算几何算法模板
    python循环时循环体一会多一会少,这个思路值得参考
    大二Web课程设计——家乡主题网页设计(web前端网页制作课作业) 四川旅游网页设计制作
    LeetCode | 198. House Robber, 213. House Robber II, 337. House Robber III
    原始递归函数及模拟运行的优化
    python安全工具开发笔记(六)——Python爬虫BeautifulSoup模块的介绍
    【C++系列】STL容器——vector类的例题应用(12)
    java-net-php-python-ssm电影推荐网站计算机毕业设计程序
  • 原文地址:https://blog.csdn.net/gbh666666/article/details/126548187
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号