Elastic Search 6 嵌套查询聚合

2024-06-18

我是弹性搜索查询和聚合的新手。 我有一个带有以下映射的嵌套文档

PUT /company
{
 "mappings": {
 `"data": {
  "properties": {
    "deptId": {
      "type": "keyword"
    },
     "deptName": {
      "type": "keyword"
    },
    "employee": {
      "type": "nested",
      "properties": {
        "empId": {
          "type": "keyword"
        },
        "empName": {
          "type": "text"
        },
        "salary": {
          "type": "float"
        }
       }}}}}}

我已插入示例数据如下

PUT company/data/1
{
"deptId":"1",
"deptName":"HR",
 "employee": [
  {
    "empId": "1",
    "empName": "John",
    "salary":"1000"
  },
   {
    "empId": "2",
    "empName": "Will",
    "salary":"2000"
  }
 ]}

PUT company/data/3
{
  "deptId":"3",
  "deptName":"FINANCE",
   "employee": [
      {
        "empId": "1",
        "empName": "John",
        "salary":"1000"
      },
       {
        "empId": "2",
        "empName": "Will",
        "salary":"2000"
      },
       {
        "empId": "3",
        "empName": "Mark",
        "salary":"4000"
      }]
     }

我如何为以下内容构建查询 DSL

  1. 员工人数最多的部门
  2. 大多数部门都有员工

我正在使用弹性搜索 6.2.4


您的第一个问题的答案在此链接中嵌套内部文档计数 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-inner-hits.html哪些统计数据

POST test/_search
{
  "query": {
    "nested": {
      "path": "employee",
      "inner_hits": {} 
    }
  }
}

这回答了您的第二个问题,还可以阅读随附的链接。

GET /my_index/blogpost/_search
{
  "size" : 0,
  "aggs": {
    "employee": { 
      "nested": {
        "path": "employee"
      },
      "aggs": {
        "by_name": {
          "terms": { 
            "field":    "employee.empName"
          }
        }
      }
    }
  }
}

阅读嵌套聚合 https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-aggregation.html

我希望这能为您提供所需的东西。

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

Elastic Search 6 嵌套查询聚合 的相关文章

随机推荐

  • Python:有类似matlab的反斜杠运算符吗?

    Matlab 和 Julia 有反斜杠运算符来求解线性系统 我真的不知道 Matlab 是做什么的 但是 Julia 不计算逆函数 但它计算逆函数对给定向量的影响 这在计算上更容易 我有一个 numpy 稀疏矩阵 我想将其伪逆应用于向量 P
  • 如何使用actionbarsherlock创建自定义下拉菜单?

    所以 我试图模仿潘多拉的菜单之类的东西 如果您可以选择点击右上角的菜单按钮或图标 无论哪种方式 它都会显示相同的下拉菜单列表 我尝试过创建 溢出 菜单 但在较旧的设备上 我发现该菜单仍然出现在底部 我不想要 所以我创建了一个Spinner并
  • 如何检查 ini_set() 是否在全局 PHP.INI 或我的 PHP 脚本中启用?

    我有一个应用程序安装失败 供应商说我可能禁用了 ini set 我怎样才能检查这个 我对此做了一些研究 结果发现有时 ini set 不会返回 FALSE 而是一个空字符串 gabriel1836 指出的 URL 中提到了这一点 检查它是否
  • 如何在initialize()中使用define_method

    尝试使用define method inside initialize但得到未定义的方法define method 我究竟做错了什么 class C def initialize n define method n puts some me
  • Fluent Nhibernate 如何在 SubclassMap 中指定 Id()

    我正在使 Fluent NHibernate 适应我们现有的遗留应用程序 并尝试确定如何将 ClassMap 和 SubclassMap 用于所示的实体层次结构 BaseObject contains database columns co
  • 数据帧初始化 - 字符初始化读取为因素?

    我正在尝试初始化这样的数据框 因为我想要一个空数据框 其中两个字符向量作为列 out frame lt data frame Hospital character State character 但是 当我查看该数据框的每一列的类时 它显示
  • 使用多处理池更新 Django 模型会锁定数据库

    我使用 Jupyter Notebook 来处理我存储在 django postgres 中的数据 我这样初始化我的项目 sys path append srv gr prg os environ setdefault DJANGO SET
  • 从 .NET 设置系统时区

    有没有人有一些代码可以从 NET 获取 TimeZoneInfo 字段并执行互操作代码以通过 SetTimeZoneInformation 设置系统时区 我意识到它基本上是将 TimeZoneInfo 成员映射到结构成员 但对我来说 这些字
  • Swift:二元运算符“==”不能应用于“协议”类型的操作数

    我有一个协议 protocol ProfileManagerDelegete func dataHaveUpdated type ReturnType 并创建一个协议数组 并添加 删除侦听器 var listeners ProfileMan
  • 在 Jquery - jTable 创建/更新模式中的字段末尾添加自定义按钮,如提交按钮

    在 jquery jTable 中 我们可以有一些字段和操作 我需要 Jquery JTable 按钮 提交 按钮 附近的其他按钮 可能在页面末尾 单击后运行另一个函数 所以 这是我的代码 RequestSubmitDiv jtable t
  • 这是演员还是建筑?

    读完教科书上的一些内容后 我有点困惑 关于代码 void doSomeWork const Widget w Fun stuff doSomeWork Widget 15 doSomeWork 需要一个const Widget 范围 教科书
  • 如何将slug添加到asp.net core网站中的所有链接生成中?

    我需要能够控制我的生成的链接Url Content 调用以能够在链接的开头接受 Slug 基本上 托管 URL 将位于负载平衡器后面 并且可能位于根级别或位于更友好的 Url 后面 举个例子 该站点配置为在以下环境下运行http 本地主机
  • 显示标准化数据

    跟进问题 添加 2 个不同表的总和 https stackoverflow com questions 39717541 adding sum from 2 different tables 我创建了3个表 members videos v
  • 如何外部化 json-ld 并包含在 html 文档中

    是否可以外部化 json ld 并将其包含在 html 文档中 如下所示 网上好像没有这方面的文档 你不能那样做 你应该得到json与AJAX要求 你可以轻松做到jQuery JS function getJSON data123 json
  • 使用函数和中点在 C++ 中对 Gusser 进行编号

    我正在尝试使用函数编写数字猜测器的代码 playOneGame 函数的返回类型应为 void 它应该在 1 到 100 的范围内实现一个完整的猜谜游戏 shouldPlayAgain 函数应具有布尔返回类型 它应该提示用户确定是否要再次玩
  • 在 Jenkins Pipeline 的一个步骤中添加多个阶段

    我正在尝试获得一个并行运行 2 个步骤的管道 其中 YAML 如下所示 steps step Step1 stages stage Build steps build a build b build c stage Sniff steps
  • 设置img src而不发出请求

    作为构建复制和粘贴代码的一部分 我们必须使用 dom 元素 并将文本 其他 dom 元素附加到其中 最终结果将是要复制的代码 但是 当附加图像元素时 浏览器always发出对图像 src 的请求 有什么办法解决吗 i e var img d
  • 如何在没有接口的情况下模拟多重继承?

    如何在不使用接口的情况下在 C 中模拟多重继承 我确实相信 接口能力不适用于此任务 我正在寻找更多面向 设计模式 的方式 就像 Marcus 所说 使用接口 扩展方法来制作像 mixins 这样的东西可能是你目前最好的选择 另请参阅 使用接
  • 在 bash 脚本中使用源时出现“源:未找到”错误

    我正在尝试编写 我认为的 一个简单的 bash 脚本 它将 运行 virtualenv 以 1 美元创建一个新环境 激活虚拟环境 做更多的事情 安装 django 将 django admin py 添加到 virtualenv 的路径等
  • Elastic Search 6 嵌套查询聚合

    我是弹性搜索查询和聚合的新手 我有一个带有以下映射的嵌套文档 PUT company mappings data properties deptId type keyword deptName type keyword employee t