数组字段的elasticsearch范围过滤器

2024-01-12

我有一个包含整数数组的字段,例如:

_source: {
  ...
  prices: [
    20001,
    30001
  ]
}

我想过滤结果,使价格至少包含以下值之间的列表之一:[20002,30000] #不会返回上述文档,因为没有值介于 20002 和 30000 之间 但[10000,20002]将返回上述文档,因为上述文档的价格字段中的 20001 介于 10000 和 20002 之间


Elasticsearch 始终认为字段可以包含值列表,因此,范围过滤器 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-filter.html应该管用。如果任何值与范围匹配,它将被过滤。

您可以将该过滤器用作过滤查询 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-filtered-query.html:

{
  "query": {
    "filtered": {
      "filter": {
        "range": {
          "prices": {
            "gte": 10000,
            "lte": 20002
          }
        }
      }
    }
  }
}

但是,过滤查询在 2.0 中已被弃用,因此,如果您使用 2.0,您可以更好地使用布尔查询 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html带过滤器:

{
  "query": {
    "bool": {
      "must": {
        "match_all": {}   
      },  
      "filter": {
        "range": {
          "prices": {
            "gte": 10000,
            "lte": 20002
          }
        }
      }
    }
  }
}

请注意,我在示例中使用了过滤器,因为您要求使用过滤器:)

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

数组字段的elasticsearch范围过滤器 的相关文章

随机推荐

  • Int32.ToString() 是否特定于区域性?

    我正在运行 ReSharper 的 Beta 版本 它向我发出以下代码的警告 int id DoSomethingWith id ToString 警告位于id ToString 调用 它告诉我 明确指定字符串转换中的区域性 我理解这个警告
  • Tomcat 5.5 中的永久 301 重定向

    是否可以使用独立运行的 Tomcat 5 5 而不是在 IIS Apache 后面 进行 301 重定向 没有一种方法可以像使用 Apache 那样轻松地进行设置 最接近的方法是创建一个 servlet 或 jsp 来处理重定向 然后将其映
  • 时间间隔的 NSPredicate

    我有一张表 其中有 4 个字段 开始日期 结束日期 开始时间和结束时间 我需要设置谓词类似 if startdate lt currentdate and currentdate lt enddate if starttime lt cur
  • 如何在 Xcode 4.4 中将部署目标从 iOS 5.1 更改为 4.2

    我试图在 Xcode 4 4 中将部署目标从 5 1 更改为 4 2 但它不起作用 我下载了 4 1 4 2 的调试支持 我将架构设置为armv6 armv7 我在plist中设置了armv6 armv7 我不使用故事板 It s a 已知
  • 大型列表上单击事件的 jQuery 委托性能 - 如果动态添加更多元素,速度会变慢?

    我有一个像这样的项目的可视列表 http jsfiddle net viatropos XCe3T 1 http jsfiddle net viatropos XCe3T 1 在真实的应用程序中 我总共只加载 200 个项目 但问题是cli
  • 无法解析 Android Studio 上的符号“android”

    我一直在制作一个显示 MapView 的应用程序 它已经构建完毕 我什至在我的设备上使用它 现在我想添加更多功能 但工作室突然给出错误 无法解析符号 android 我将工作室更新到 0 8 6 最新 但是该死的 没有什么变化 Errors
  • 下载SSRS报告并保存在特定位置(C#)(未经授权)

    Question 我正在尝试通过其 URL 将 SSRS 报告下载到数据缓冲区 字节数组 中 因此我可以将其保存在特定的文件夹中 并使用我选择的名称 如果需要的话 我愿意接受不同方法的建议 问题 但是我不断收到以下错误 401 未经授权 无
  • 字符串变量的 Null 或空检查

    if isnull value 我想知道上面的代码是否可以检查变量是否为空或空 是的 该代码正是这样做的 您还可以使用 if value is null or value Edit 添加的信息表明 value is an int值 你需要
  • 使用 Angular SPA 应用程序与 IdentityServer4 进行身份验证/授权接收令牌,然后与 Web API 进行对话

    我有一个 asp net core Web API 我目前正在使用 Angular 4 应用程序直接调用它 我现在想添加身份验证和授权层 我想通过向我的解决方案添加另一个类型为 ASP NET Core MVC 带个人用户帐户 的项目 严格
  • 为什么在使用 JPA 映射类时应该在 getter 或 setter 上添加注释?

    主题说明了一切 到目前为止 我认为人们在 getter 和 或 setter 上声明注释没有任何优势 对我来说 这唯一的缺点是将注释分散到类上 这会使类更加难以阅读 将注释放在字段上显然可以减少需要帮助时发布的代码量 但这只是一个微小的优势
  • 如何在 scala 中进行依赖注入?

    除了java之外 我还处于学习scala的开始阶段 我不明白如何在那里进行DI 我可以或者应该使用现有的 DI 库 应该手动完成还是有其他方法 标准 Java DI 框架通常可与 Scala 配合使用 但您也可以使用语言构造来达到同样的效果
  • data.table高效回收

    我经常在 data table 中使用回收 例如当我需要对未来几年进行预测时 我会在未来的每一年重复我的原始数据 这可能会导致类似的情况 library data table dt lt data table cbind 1 500000
  • 如何使方法返回类型通用?

    考虑这个例子 OOP 书籍中的典型例子 我有一个Animal类 其中每个Animal可以有很多朋友 还有像这样的子类Dog Duck Mouse等添加特定行为 例如bark quack etc 这是Animal class public c
  • 如何在 strings.xml 中输入字符“<”?

    我想输入字符串 lt in strings xmleclipse中的文件 字符串有字符 lt 我无法将其添加到 xml 文件而不出错 我什至试图逃避 特点
  • 应用程序在设备上崩溃,但在模拟器 iOS 上运行

    App wasn t developed by me but now I have to add some features Code compiles add launches on simulator but immediately c
  • 允许的 HTML 4.01 id 值正则表达式

    你能帮我构建一个与有效的 W3C HTML 4 01 匹配的正则表达式吗id value 根据 W3C 规范 ID 和 NAME 令牌必须以字母 A Za z 开头 并且可以是 后跟任意数量的字母 数字 0 9 连字符 下划线 冒号 和句点
  • 很棒的 RDF 可视化工具 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想找到一些很棒的工具或样式来可视化我的 RDF 数据 以便在观看者访问 RDF 数据时能给他们带来震撼 问题是我现在得到的可视化工具只能
  • 在 PHP 的 foreach 循环中对项目进行分组

    所以 我正在尝试做一种用户市场类型的东西 有一个数据库item names 基本描述了虚拟物品 然后还有一张表market 当用户列出他们的一件商品时 该商品就会在用户 用户市场上出售 我这里唯一的问题是我想按项目名称对其进行分组 在ite
  • Swift 2 无法删除可选绑定

    我是 Swift 新手 对可选 没有更多的想法 我尝试从 plist 中获取数据 创建模型并显示UITableView 表格数据显示完美 但显示为Optional 捆绑 我尝试过改变 到 但无法解开 您能指导我解决这个问题吗 这是我的代码和
  • 数组字段的elasticsearch范围过滤器

    我有一个包含整数数组的字段 例如 source prices 20001 30001 我想过滤结果 使价格至少包含以下值之间的列表之一 20002 30000 不会返回上述文档 因为没有值介于 20002 和 30000 之间 但 1000