Elasticsearch:如何使用两个不同的多重匹配字段?

2024-03-19

我想做一些类似的事情“和”过滤器示例 http://www.elasticsearch.org/guide/reference/query-dsl/and-filter/除非每个术语中都带有“应该”,而不是示例中的字段类型。我想出了以下几点:

    {
  "query": {
    "bool": {
      "must": [
        {
          "ids": {
            "type": "foo",
            "values": [
              "fff",
              "bar",
              "baz",
            ]
          }
        }
      ]
    }
  },
  "filter": {
    "and": {
      "filters": [
        {
          "bool": {
            "should": {
              "term": {
                "fruit": [
                  "orange",
                  "apple",
                  "pear",
                ]
              }
            },
            "minimum_should_match": 1
          }
        },
        {
          "bool": {
            "should": {
              "term": {
                "color": [
                  "red",
                  "yellow",
                  "green"
                ]
              }
            },
            "minimum_should_match": 1
          }
        }
      ]
    }
  }
}

但是,我收到此错误:

[bool] filter does not support [minimum_should_match];

还有另一种方法可以完成我正在尝试做的事情,或者我走在正确的轨道上吗?或者这在elasticsearch中是不可能的?


每个 bool 查询子句可以包含多个子句。术语查询 (http://www.elasticsearch.org/guide/reference/query-dsl/terms-query/ http://www.elasticsearch.org/guide/reference/query-dsl/terms-query/) 是指定查询应匹配任何术语列表的简单方法。除了之前的 ids 查询之外,这里使用术语查询来表示水果必须是橙色、苹果、梨之一,颜色必须是红色、黄色、绿色之一:

{
  "query": {
    "bool": {
      "must": [
        {
          "ids": {
            "type": "foo",
            "values": [
              "fff",
              "bar",
              "baz"
            ]
          }
        },
        {
          "terms": {
            "fruit": [ "orange", "apple","pear" ],
            "minimum_should_match": 1
          }
        },
        {
          "terms": {
            "color": [ "red", "yellow", "green" ],
            "minimum_should_match": 1
          }
        }
      ]
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch:如何使用两个不同的多重匹配字段? 的相关文章

随机推荐

  • 没有权限在Windows上删除SQLite3开发数据库Rails 5.0

    我正在尝试在 Windows 上重置 Rails 5 0 项目的开发数据库 但是当我运行时 与 rake db drop 相同 rails db drop 我收到以下错误 Errno EACCES 权限被拒绝 unlink internal
  • sql避免笛卡尔积

    我对 SQL 还很陌生 并且正在努力处理查询 使用 Access FWIW 我在 Google 上搜索过 StackOverflow 但还没有看到这种确切的场景 这也可能是因为我不知道正确的搜索词 我有两个非常简单的表 其中包含相似的数据
  • Sql索引与全表扫描

    在编写复杂的 SQL 查询时 我们如何确保使用正确的索引并避免全表扫描 我通过确保只加入具有索引 主键 唯一键等 的列来做到这一点 这够了吗 向数据库询问查询的执行计划 然后从那里继续 不要忘记对 where 子句中出现的列也建立索引
  • 自动加载器导致找不到类

    我正在尝试在我的 WordPress 项目中包含一个自动加载器 更具体地说 我正在开发一个插件 其中包含所有类的 Classes 目录 我希望这些类可以通过命名空间访问到我的 WordPress 项目根目录和子文件 文件夹 我觉得我的com
  • iPhone Chrome 上的 ICS 文件下载失败并显示“未知文件类型”

    我有一个 php 脚本 可以为移动网络应用程序自动生成 ics 文件 在我的 Win7 桌面上使用 Chrome ics 文件下载得很好 Outlook 也喜欢它 在我的 iPhone 上使用 Safari ics 文件会按预期打开日历应用
  • 模拟 Fn+F11 按键

    Can you tell me how I can simulate key presses Fn F11 on a laptop Do I have to write a driver or something like that 平台是
  • 如何将浮动操作按钮带到应用程序之外并使其作为可见、可移动和可点击的后台服务运行?

    所以我需要我的应用程序有一个开关 当它打开时 应该创建一个 FAB 在主活动 应用程序关闭后 这应该像后台服务一样在所有其他应用程序上运行 因此 无论我触摸 FAB 的任何地方 它都应该是可点击 可移动的 并且应该覆盖所有应用程序 看看以下
  • 自定义 Django Rest 解析器

    这是我的代码 class lista libros APIView def post self request format None format None cadena64 request data xmlfile base64 b64
  • 如何通过将文件/文件夹“拖放到”脚本图标上来将路径名传递给 Python 脚本

    我在 Mac OS X 中工作 一直在用 Python 编写简单的文件 文件夹复制脚本 有没有办法将文件夹拖放到 Python 脚本图标顶部 并将文件或文件夹的路径作为脚本中的参数传递 目前 我有一个 AppleScript Droplet
  • 换行时居中 div(当它不适合在线时)

    我正在尝试仅使用 CSS 创建此布局 当标题合适时 当标题不合适时 右边的 btn 如果换行的话应该居中 我试过这个 container width 100 border 1px solid grey padding 5px block p
  • 非常规年份的 DateTime.ParseExact

    我正在尝试使用单个格式字符串读取以下格式的日期 1000 12 31 999 12 31 99 12 31 这些对应于公元 1000 年 公元 999 年和公元 99 年的日期 我尝试过以下格式字符串 yyyy M d 这对于 999 和
  • 通用的单个sql查询

    我有一个这样的表 id roll no name 1 111 Naveed 2 222 Adil 3 333 Ali 如果我有这样的数据 fields array id roll no and values array 1 111 2 22
  • WinSCP 以自动化模式向服务器进行身份验证,使用公钥身份验证

    我正在使用 WinSCP 自动复制到服务器的过程 并且仅使用用户名和密码进行身份验证 脚本是 open username password ipaddress portno hostkey
  • 如何锁定多个线程中使用的变量

    我在这里问了一个很糟糕的问题在多个线程中锁定变量 https stackoverflow com questions 4081986 lock on a variable in multiple threads因此 为了清楚起见 我将在这里
  • 如何从两个间隔中获取分割月份?

    我有两个 YYYYmm 格式的日期 start 202307 end 202612 想要根据提供的间隔按间隔分割它们 例如 split months 202307 202405 5 会给我 202307 202311 202312 2024
  • 有没有办法去掉框架装饰而不需要重新打开它? [复制]

    这个问题在这里已经有答案了 我正在制作一个简单的圣经阅读器 我想要一个全屏选项 默认情况下 框架是最大化的 但框架就在那里 我有一个方法 setFullScreen 删除装饰 不过初始化后好像没有更新 有没有解决的办法 setFullScr
  • postgresql插入多个选择

    如果这是我插入一条记录的方式 insert into fund data fund entries id fund val bbg pulls id select fe id 1 20 from fund entries fe where
  • Django查询:通过列表获取所有不同值的最后一个条目

    我正在尝试进行 Django 查询 以获取每个不同值的最后条目的列表MySQL数据库 我将在下面展示一个例子 因为这个解释可能非常复杂 显然 在 Django 中 使用它们自己获取不同的值是没有问题的 values 我正在考虑创建几个 Dj
  • 调整各个 ggrepel 标签内的文本行

    我有一个情节 我用多行标记元素ggrepel标签 我想在其中一些中右对齐 而在另一些中左对齐 参见示例 p lt ggplot coord cartesian xlim c 0 1 ylim c 0 1 theme void p label
  • Elasticsearch:如何使用两个不同的多重匹配字段?

    我想做一些类似的事情 和 过滤器示例 http www elasticsearch org guide reference query dsl and filter 除非每个术语中都带有 应该 而不是示例中的字段类型 我想出了以下几点 qu