elasticsearch query bool nested对象 聚合

2023-11-20

复杂的查询
下面的查询是小编自己研究写的一个比较复杂,的语句。涉及到查query ,bool must,已经过滤条件term
关键词介绍
from : 表示从第几条开始返回
size: 表示返回的题目数大小。
query :查询语句
bool 、must、 should 是拼接sql中的where条件,bool 、must组合表示 and,bool 、should 组合表示 or。
range: 范围查询语句,在本语句中我们只使用了小于 “lte”,大于 "gte"也可以将小于大于写到一个range内对一个数据的范围进行筛选。
aggs是对数据进行聚合,本示例中的我们实行的是对复杂对象(nested)的聚合操作。
其中group的格式为
{
id:1,
name:“myname”,
group:[{id:1,name:1},{id:2,name:2},{id:13,name:13}]
}

GET /my_index/_search
{
 "from": 0, 
 "size": 1, 
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "time": {
              "value": "2019-01-10 12:15:00"
            }
          }
        },
        {
          "bool": {
            "should": [
              {
                "range": {
                  "wireless_ss_1_rate": {
                    "lte": 0.9
                  }
                }
              },
              {
                "range": {
                  "wireless_cll_rate": {
                    "gte": 0.015
                  }
                }
              },
              {
                "range": {
                  "erab_dr_1_rate": {
                    "gte": 0.015
                  }
                }
              },
              {
                "range": {
                  "uppktlo_rate": {
                    "gte": 0.015
                  }
                }
              },
              {
                "range": {
                  "uppktlos_rate": {
                    "gte": 0.015
                  }
                }
              },
              {
                "range": {
                  "ho_s_rate": {
                    "lte": 0.9
                  }
                }
              },
              {
                "range": {
                  "wireless_ac_rate": {
                    "lte": 0.95
                  }
                }
              },
              {
                "range": {
                  "ulprbmea_rate": {
                    "gte": 0.7
                  }
                }
              },
              {
                "range": {
                  "dlprbmea_rate": {
                    "gte": 0.7
                  }
                }
              },
              {
                "range": {
                  "effectivemean": {
                    "gte": 50
                  }
                }
              },
              {
                "range": {
                  "effectivemax": {
                    "gte": 50
                  }
                }
              },
              {
                "range": {
                  "ho_succ_qci1_rate": {
                    "lte": 0.9
                  }
                }
              },
              {
                "range": {
                  "ulmeannl_avg": {
                    "gte": -105
                  }
                }
              },
              {
                "range": {
                  "outgeran_rate": {
                    "lte": 0.9
                  }
                }
              }
            ]
          }
        }
       
       
      
      ]
    }
  },
    "aggs": {
        "aggs_group": {
          "nested": {
            "path": "group"
          },
          "aggs": {
            "duration_ranges": {
          "terms": {
            "field": "group.id",
            "size": 100000
            // size 设置返回聚合的条目数,默认是10条。
          }
        }
      }
    }
  }
  ,
  "_source": ["my_col"]
}

注意集合时候需要将被聚合对象的fielddata属性是否开,该属性作用是1.懒加载,2.聚合时候可以把数据放入缓存来加快计算速度
1.一般对象释放fielddata属性
#释放name

PUT /my_index/_mapping/_doc
{
  "properties": {
    "name": {
      "type": "text",
      "fielddata": true
    }
  }
}

2.复杂对象(nested对象)释放fielddata属性
#释放cell_group.id

PUT /tpa_eutrancell_q_2019.01.10/_mapping/_doc
{
  "properties": {
    "group": {
      "type": "nested",
      "properties": {
        "id": {
          "type": "text",
          "fielddata": true
        }
      }
    }
  }
}

上面的语句是正确可以执行的。欢迎各位大家给予意见。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

elasticsearch query bool nested对象 聚合 的相关文章

随机推荐

  • R数据科学-第九章使用lubridate处理日期和时间

    本章将会使用以下三个包 gt library tidyverse gt library lubridate gt library nycflights13 一 创建日期或时间 表示日期或时间的数据有三种 日期 在tibble中显示为date
  • C#学习笔记 事件

    事件为委托提供了一种发布 订阅机制 声明事件的类被称为发行者类 其他类可以订阅发行者类中的事件 当发行者类触发其中的事件时 所有订阅该事件的类都会收到这个变化 在图形界面框架中 这种情况非常常见 事件发布者 首先需要创建一个事件发布者类 该
  • python自动化笔记(十一)——openpyxl之封装

    封装一个可以读取任意excel文件的方法 可以指定读取的表单 当我们多次从excel中读取数据时 就不用重复地写代码 只需调用封装的类即可 一 封装的excel类实现的需求是什么 1 读取表头数据 2 读取表头以外的所有数据 返回值 列表
  • DHCP的配置(以华为eNSP为例)

    如有错误 敬请谅解 此文章仅为本人学习笔记 仅供参考 如有冒犯 请联系作者删除 基础知识介绍 络组建步骤 1 拓扑设计 2 IP地址规划 按照拓扑中划分的 络范围 规划 络位不同的IP地址 3 配置 1 配置各个节点的IP地址 2 路由 全
  • qbytearray的append是浅拷贝还是深拷贝_前端深拷贝和浅拷贝

    在前端攻城狮的工作实际应用中 有很多情况下在处理数据的时候 会用到数据的深拷贝和浅拷贝 例如 vue中数据是双向绑定的 页面显示依赖于从后台获取到的数据 但要将这个数据当做参数发送给另外一个接口的时候 其中有几个字段是多余的 此时 如果将原
  • 时间序列 R 07 时间序列分解 Time series decomposition

    一个时间序列可以分解为多个模型的组合 1 1 时间序列的组成 1 1 1 时间序列组成模式 三种时间序列模式 不计剩余残差部分 1 趋势Tend 比如线性趋势 先增加后降低的整体趋势 2 季节性Seasonal 以时间为固定周期 呈现循环的
  • IT项目管理个人作业8

    质量标准 量度 学历 博士以上 教学经验 5年以上 论文发布 10篇以上 逻辑表达能力 思路清晰 讲话清楚 性格 耐心 热情 同行评价 良好及以上 画出QQ图 因为数据量太少 可以推测它是符合正态分布的
  • 我的图床解决方案,超详细!

    图床就是将你的本地图片上传到相关服务商或者个人服务器 然后获取图片对应的网络访问地址 使用者可以方便快速的将图片插入到文章中 后续图片二次使用 迁移 分享都会非常简单 我之前常用的图床方案是使用Gitee的仓库来实现 我的博客 1 周刊 2
  • yaml学习

    1 yaml是专门用来写配置文件的语言 非常强大和简洁 远比json格式方便 可用之作为自动化测试框架的配置文件或者用例文件 2 使用场景 做配置文件 做测试用例 3 语法基本规则 大小写敏感 使用缩进表示层级关系 缩进的空格数目不重要 只
  • MySql笔记

    全部案例sql语句 https blog csdn net weixin 46002478 article details 109158249 视频学习地址 https www bilibili com video BV1KW411u7vy
  • 大端模式和小端模式转化

    在工作中遇到一个问题 数据是以大端模式存储的 而机器是小端模式 必须进行转换 否则使用时会出问题 一 定义 大端模式 Big Endian 数据的高字节 保存在内存的低地址中 数据的低字节 保存在内存的高地址中 小端模式 Little En
  • cube例子自带的说明文档

    Qt 5 6 Qt OpenGL Cube OpenGL ES 2 0 example Qt 5 6 0 Reference Documentation Contents Initializing OpenGL ES 2 0 Loading
  • Hibernate 知识点总结

    HIbernate最佳实践 1 使用Configuration装载映射文件时 不要使用绝对路径装载 最好的方式是通过getResourceAsStream 装载映射文件 这样Hibernate会从classpath中寻找已配置的映射文件 2
  • IDEA 消除项目结构 0%classes,0% lines covered

    1 起因 启动的时候 误点了下面的图标 2 作用 经查 这个图标的作用 用于检测代码覆盖率 在单元测试中经常被用到 以后有时间可以详细了解一下 3 解决 方法一 点击 Coverage 会出现一个 Coverage 控制台 点击红叉 No
  • 基于MATLAB BP神经网络的水果识别

    基于MATLAB BP神经网络的水果识别 一 课题实现的功能 1 原理分析 由于数字图像是唯一的特征标识符号 在经营管理中具有不可替代的作用 因此数字图像识别系统应具有很高的识别正确率 对环境光照条件 拍摄位置等因素的影响应有较大的容阈 并
  • 【平差软件学习---科傻】四、科傻二等水准平差(参数设置和in1文件讲解)

    平差软件学习 科傻 四 科傻二等水准平差 参数设置和in1文件讲解 这个算是最后一集了 也可能不是如果我想到不足的地方我会在补上一集视频 或者是文章页 总感觉自己操作的很熟练 到自己真正讲的时候就没有头绪了 不知道看到的我讲的同事会不会笑话
  • python的爬虫代码_python爬虫代码

    encoding utf 8 importreimportrequestsimporturllib2importdatetimeimportMySQLdbfrom bs4 importBeautifulSoupimportsys reloa
  • GVIM教程,GVIM使用心得

    目录 一 gvim的基础操作 1 插入字符 2 移动光标或页面 3 查找内容 4 替换 5 删除文本 6 复制粘贴 7 对文件的操作 8 多行编辑 9 选中文本 一 gvim的基础操作 以下操作均在命令模式下进行 操作中需要输入冒号则进入末
  • Java Quartz框架

    Java Quartz框架 Java Quartz是一个开源的作业调度框架 用于在Java应用程序中实现定时任务和调度功能 它提供了灵活的任务调度和执行机制 可以根据时间表或触发事件来触发任务的执行 Quartz的主要作用是简化定时任务的管
  • elasticsearch query bool nested对象 聚合

    复杂的查询 下面的查询是小编自己研究写的一个比较复杂 的语句 涉及到查query bool must 已经过滤条件term 关键词介绍 from 表示从第几条开始返回 size 表示返回的题目数大小 query 查询语句 bool must