Elasticsearch 不同的过滤器值

2024-01-15

我在 elasticsearch 中有一个大型文档存储,并且想要检索不同的过滤器值以显示在 HTML 下拉列表中。

一个例子是这样的


[
    {
        "name": "John Doe",
        "deparments": [
            {
                "name": "Accounts"
            },
            {
                "name": "Management"
            }
        ]
    },
    {
        "name": "Jane Smith",
        "deparments": [
            {
                "name": "IT"
            },
            {
                "name": "Management"
            }
        ]
    }
]  

下拉列表应包含部门列表,即 IT、客户和管理。

请有好心人为我指明从 Elasticsearch 检索不同部门列表的正确方向吗?

Thanks


这是一份工作terms聚合(文档 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#search-aggregations-bucket-terms-aggregation).

你可以拥有与众不同的departments像这样的值:

POST company/employee/_search
{
  "size":0,
  "aggs": {
    "by_departments": {
      "terms": {
        "field": "departments.name",
        "size": 0 //see note 1
      }
    }
  }
}

在您的示例中,输出:

{
   ...
   "aggregations": {
      "by_departments": {
         "buckets": [
            {
               "key": "management", //see note 2
               "doc_count": 2
            },
            {
               "key": "accounts",
               "doc_count": 1
            },
            {
               "key": "it",
               "doc_count": 1
            }
         ]
      }
   }
}

两个附加说明:

  • setting size设置为 0 会将最大存储桶数设置为 Integer.MAX_VALUE。如果太多就不要使用departments独特的价值观。
  • 你可以看到钥匙是terms分析结果departments价值观。请务必使用您的terms映射为的字段上的聚合not_analyzed .

例如,使用我们的默认映射(departments.name is an analyzed字符串),添加该员工:

{
  "name": "Bill Gates",
  "departments": [
    {
      "name": "IT"
    },
    {
      "name": "Human Resource"
    }
  ]
}

会导致这样的结果:

{
   ...
   "aggregations": {
      "by_departments": {
         "buckets": [
            {
               "key": "it",
               "doc_count": 2
            },
            {
               "key": "management",
               "doc_count": 2
            },
            {
               "key": "accounts",
               "doc_count": 1
            },
            {
               "key": "human",
               "doc_count": 1
            },
            {
               "key": "resource",
               "doc_count": 1
            }
         ]
      }
   }
}

有了正确的映射:

POST company
{
  "mappings": {
    "employee": {
      "properties": {
        "name": {
          "type": "string"
        },
        "departments": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "index": "not_analyzed"
            }
          }
        }
      }
    }
  }
}

相同的请求最终输出:

{
   ...
   "aggregations": {
      "by_departments": {
         "buckets": [
            {
               "key": "IT",
               "doc_count": 2
            },
            {
               "key": "Management",
               "doc_count": 2
            },
            {
               "key": "Accounts",
               "doc_count": 1
            },
            {
               "key": "Human Resource",
               "doc_count": 1
            }
         ]
      }
   }
}

希望这可以帮助!

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

Elasticsearch 不同的过滤器值 的相关文章

  • Javascript:如何过滤对象数组并对结果求和

    我有一个对象数组 var example a 1 b 2 c 3 a 4 b 5 c 6 a 7 b 8 c 9 我正在尝试添加所有不对应的值c 我已经设法用 console log test filter x gt x c gt 3 过滤
  • 查询格式错误,查询名称后没有 start_object

    我正在针对 AWS Elasticsearch 5 1 运行此查询并收到格式错误的查询错误 这是请求的正文 我基本上只是检查该字段在时间范围内是否存在 query bool filter bool must range timestamp
  • Airflow log_id 格式错误

    我正在使用 Airflow v2 2 3 和apache airflow providers elasticsearch 2 1 0 在 Kubernetes 中运行 我们的日志会自动发送到 Elasticsearch v7 6 2 我在
  • `docker-compose up` 与使用环境变量的 `docker compose up`

    我正在尝试使用 Docker Compose 将三节点 Elasticsearch 集群部署到 Azure 容器实例 我松松地跟随这个例子 https www elastic co guide en elasticsearch refere
  • 如何过滤反应中的状态数组?

    我有阶数减速器 它有很多状态 const initialState channel null order fetching true menu categories subcategories currentCategoryId 1 cur
  • Elasticsearch 中的组合非嵌套和嵌套查询

    我想使用 ES 进行书籍搜索 所以我决定将作者姓名和标题 作为嵌套文档 放入索引中 如下所示 curl XPUT localhost 9200 library search books 1 d author one books title
  • 添加任何自定义实体后 jHipster Elasticsearch 问题

    org springframework beans factory UnsatisfiedDependencyException Error creating bean with name countryServiceImpl define
  • 如何在 Kibana 中过滤小于参数的计数器?

    我有一个类似的问题 如何过滤字段greater比 Kibana 上的计数器 https github com elastic kibana issues 9684 https github com elastic kibana issues
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 将 MongoDb 同步到 ElasticSearch

    我正在寻找一种将 MongoDB 中的集合与 Elastic Search ES 同步的方法 目标是以 MongoDB 作为主要数据源 并使用 MongoDB 作为全文搜索引擎 我的项目的业务逻辑是用python写的 网上有多种方法可供选择
  • django-过滤器和聚合函数

    这是一个特定于应用程序的问题 Django 过滤器 https github com alex django filter 这里给没用过的人简单说明一下 f ProductFilter request GET queryset Produc
  • 基于局部变量的Django条件过滤器

    我是 django 的新手 想知道除了 if 语句之外是否还有更有效的条件过滤方法 Given test names all test types a b c more lists 我知道我可以这样做 q tests objects all
  • 按值数组过滤对象数组中的嵌套数组

    考虑以下对象数组 guid j5Dc9Z courses id 1 name foo guid a5gdfS courses id 2 name bar
  • 在 MongoDB 中查找 7 天前的记录

    我有一个包含对象的集合 如下所示 1 id ObjectId 551c6605e4c6ac495c923aab sender id ObjectId 551c6605e4c6ac495c923aac rep sender id 38 sen
  • 如何组合过滤条件

    过滤器类函数接受一个条件 a gt Bool 并在过滤时应用它 当您有多个条件时 使用过滤器的最佳方法是什么 使用了应用函数 liftA2 而不是 liftM2 因为出于某种原因我不明白 liftM2 在纯代码中如何工作 liftM2 组合
  • Elasticsearch 聚合过滤器

    因为我在谷歌上找不到任何东西 是否可以在elasticsearch中过滤聚合 我正在考虑这样的事情 获取 SOME object X gt 100 的所有对象 提前致谢 编辑 样本数据 我有以下文档结构 docKey 1 value 2 d
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • Mongodump之后,调用MongoRestore挂起

    我们正在尝试在相对较小的数据库上做一个简单的 MongoDump 我们的步骤很简单 export 从目标机器上删除现有数据库 在目标机器上导入 MongoDump 完美执行 mongodump out root mongo prod DB
  • Excel FILTER() 对于空白单元格返回 0

    我怀疑以前有人问过这个问题 但我找不到 FILTER 即使指定了返回字符串 通常也会为空白行返回 0 Using filter 我经常收到空单元格的 0 返回值 假设 A 列中有 6 行数据 abc xyz abc xyz abc If I
  • 在 CircleCI 中设置 Elasticsearch 和 Ruby on Rails

    我正在尝试在 Rails 应用程序中使用 Elasticsearch 设置 CircleCI 我想已经配置了镜像 但是如何在 CI 中连接到它 到目前为止我已经尝试过 https github com elastic elasticsear

随机推荐

  • java中的继承和超类(Object, Class)

    Is java lang Object隐式继承的所有自定义类 对象的超类 我以为java不支持多重继承 我问的原因是我是否已经从自定义类中的另一个类继承 并且 java 再次强制隐式继承java lang Object最重要的是 这不是多重
  • 为什么我们要在FRP中使用Behavior

    我正在学习反应式香蕉 为了理解该库 我决定实现一个虚拟应用程序 每当有人按下按钮时 该应用程序就会增加计数器 我使用的 UI 库是 Gtk 但这与解释无关 这是我提出的非常简单的实现 import Graphics UI Gtk impor
  • 是否可以有像部分类一样的部分xaml?

    我想将一个 xaml 文件分成几个文件 有点像部分类 有办法做到这一点吗 我希望能够更方便地管理我的项目文件 有一些可能性 尽管它可能并不完全是你所想的 您可以通过 ResourceDictionary 的方式外包资源 这对于样式和模板来说
  • 是否可以更改导航按钮以显示图像而不是蓝色?

    我正在尝试设置一个NavigationButton显示图像 而不仅仅是蓝色按钮 目前 我正在显示一个水平的 Scrollview 由图像组成 这些图像应该导致另一个视图 该视图将呈现在rootView 然而 当我将这些图像包裹在Naviga
  • 在带有 iOS 11 的 xcode 9 中 - 首次运行时加载地图图块的问题

    更新了新发现 在模拟器和设备上进行了测试 当应用程序从冷启动运行时 地图无法正确加载 不显示图块 mapViewDidFinishLoadingMap没有被调用 因此 由于地图未完成而出现问题 但我没有收到任何错误 如果我只是短暂退出应用程
  • 如何使用模拟框架测试在谷歌测试延迟后进行的调用

    我目前正在尝试评估不同的测试框架 当使用模拟框架时 我倾向于 FakeIt 但 google mock 也很好 我知道您可以通过在调用函数之前和之后使用操作系统的计时器调用来验证函数的性能来进行自己的 性能 测试 这不是我所追求的 我所做的
  • C# 如果一个方法花费的时间超过 2 秒,如何停止它?

    下面的程序将连接到网络并获取 msnbc com 网页的html内容并打印结果 如果从网页获取数据的时间超过 2 秒 我希望我的方法停止工作并返回 您能举个例子告诉我如何做到这一点吗 public partial class Form1 F
  • 如何使用条件空运算符来检查空字符串?

    我正在尝试执行 LINQ to 对象查询 如下所示 var c1 allCustomers Where x gt x CompanyName Replace StartsWith searchText ToList 只要 CompanyNa
  • 堆栈对象的“删除”行为是什么? [复制]

    这个问题在这里已经有答案了 int main Class Name t Class Name p t delete p return 0 这段代码在调用 2 个析构函数时执行得很好 删除如何处理堆栈对象 行为是否未定义 你遇到了未定义的行为
  • 访问 SQL Server 插入被 Select 阻止

    好的 我们有一个多用户 25 个用户 Access 2013 FE 和 SQL Server 2012 BE 直到昨天 整个系统都运行良好 现在已经完全停止了 如果用户 A 通过从表 Z 中直接选择查询读取打开了一条记录 那么如果用户 B
  • R Shiny:将reactiveValues()与data.table按引用分配一起使用

    我有一个闪亮的应用程序 其中多个反应组件使用计算速度很慢的函数的相同结果 为了避免多次计算慢函数 我可以使用reactiveValues 当输入发生变化时重新计算函数 并使结果可供所有需要它的反应组件使用 但是 如果reactiveValu
  • 无法解释的语法错误[重复]

    这个问题在这里已经有答案了 我遇到了一个我根本无法解释的语法错误 Code import React Component from react class Button extends Component handleClick gt th
  • 将内置函数插入 VS Code 扩展的正确方法

    介绍 我目前正在开发一个基于 Bluegiga BLE 112 模块的应用程序 该模块可使用 BGScript 脚本语言进行编程 然而 我发现的唯一对 BGScript 有某种支持的编辑器是 Notepad 它不适合我的需要 因此 我开始开
  • 如何将链接中的变量传递给 django 视图

    我有一个 html 表单 它使用 for 循环显示数据 tbody for sku lid stk mrp sp stts in product data tr td a class btn link href product produc
  • 如何在 PHP 中将 MySQL 数据库转换为 SQLite?

    我需要 PHP 代码来转换数据库 我试过如何使用 PHP 将 mysql 转换为 SQLite https stackoverflow com questions 10226067 how to convert mysql to sqlit
  • Android 4.0 ICS 中通话音频流修改

    我一直在从事一个项目 该项目将从呼叫流修改中受益匪浅 这已被反复提及 假设为无法实现 因为大多数人认为通话音频的硬件环路与设备的主 MCU 完全断开 诸如此类的问题将音频流式传输至 Android 电话 https stackoverflo
  • OSX:当文件出现在文件夹中时执行bash脚本

    我正在尝试编写自己的屏幕截图上传器脚本 我快到了 OSX 自动将屏幕截图上传到 imageBin 并将 URL 放入剪贴板 https stackoverflow com questions 21371254 osx automatical
  • 如何配置 SCP/SFTP 文件存储?

    我的 Laravel 应用程序应该将文件复制到另一个远程主机 远程主机只能通过带有私钥的 SCP 进行访问 我想配置一个新的文件存储 https laravel com docs 5 5 filesystem 与FTP类似 https la
  • 将图像从 FilePicker/Intent 复制到另一个目录

    我正在尝试将从 Intent 收到的图像复制到另一个目录 但我还无法让它工作 需要帮忙 我的日志猫 04 29 14 56 22 778 31620 31620 com example krupal sqlitetest I Choreog
  • Elasticsearch 不同的过滤器值

    我在 elasticsearch 中有一个大型文档存储 并且想要检索不同的过滤器值以显示在 HTML 下拉列表中 一个例子是这样的 name John Doe deparments name Accounts name Management