elasticsearch:将“应该”变成过滤器

2024-03-05

我想使用过滤器进行搜索,排除与条件或另一个条件不匹配的结果:

我尝试在过滤器中执行“应该”操作,但失败了:

POST /my_index/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "should": [
            {
              "match": {
                "type1_title": "searched match"
              }
            },
            {
              "match": {
                "type2_title": "searched match"
              }
            }
          ]
        }
      ]
    }
  }
}

它会引发该错误:

 "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "[should] query malformed, no start_object after query name",
        "line": 9,
        "col": 21
      }
    ],
    "type": "parsing_exception",
    "reason": "[should] query malformed, no start_object after query name",
    "line": 9,
    "col": 21
  },
  "status": 400
}

你知道我们是否可以在过滤器中添加 or 吗?


为什么不简单地bool/should,没有必要filter here

POST /my_index/_search
{
  "query": {
    "bool": {
          "minimum_should_match": 1,
          "should": [
            {
              "match": {
                "type1_title": "searched match"
              }
            },
            {
              "match": {
                "type2_title": "searched match"
              }
            }
          ]
    }
  }
}

如果你真的想保留bool/filter/should构造然后你需要这样做:

POST /my_index/_search
{
  "query": {
    "bool": {
      "filter": [
        {
         "bool": {
          "should": [
            {
              "match": {
                "type1_title": "searched match"
              }
            },
            {
              "match": {
                "type2_title": "searched match"
              }
            }
          ]
         }
        }
      ]
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

elasticsearch:将“应该”变成过滤器 的相关文章

  • 为什么路由不能与 ElasticSearch Bulk API 一起使用?

    我正在向 ElasticSearch 设置批量请求并指定要路由到的分片 但是当我运行它时 文档会被发送到不同的分片 这是 ElasticSearch 批量中的错误吗 当我只索引单个文档时它就有效 当我搜索时它有效 但当我进行批量导入时则不然
  • Spring Data Elastic 从 3.x 迁移到 4.x 的索引问题

    在我们使用的整体应用程序中JHIPSTER 6 10 5 我们正在使用Spring Data Elastic 版本 3 3 1 with 弹性搜索版本 6 8 8 我们有多个 ManyToOne and OneToMany与 100 多个实
  • 如何在 ElasticSearch 中从形状获取交点

    我已经存储了一条路线ElasticSearch作为多边形 现在我有一个圆 一个点和一个半径 我可以检查圆点是否与多边形相交 下面是我使用的代码 问题 如何获取与圆相交的路线上的点 public Boolean isMatchingDoc L
  • Logstash创建管道但未创建索引

    我正在尝试使用 json 文件在 elasticsearch 云上创建索引 我已经创建了如下所示的配置 input file path gt root leads json start position gt beginning ignor
  • 错误:index_not_found_Exception

    我使用 ELK 堆栈来分析我的日志文件 我上周测试过 一切正常 今天 我进行了测试 但当我输入 http localhost 9200 iot log count http localhost 9200 iot log count iot
  • 使用批量/更新方法将“标签”应用于数百万个文档

    我们的 ElasticSearch 实例中有大约 55 000 000 个文档 我们有一个带有 user ids 的 CSV 文件 最大的 CSV 有 9M 个条目 我们的文档以 user id 作为键 所以这很方便 我发布这个问题是因为我
  • 如何将Spring boot日志直接摄取到elastic中

    我正在研究将 Spring Boot 应用程序日志直接发送到 Elastic Search 的可行性 不使用 filebeats 或logstash 我相信 Ingest 插件可能会对此有所帮助 我最初的想法是使用 TCP 上的 logba
  • Elasticsearch bool 过滤器用于数组同一元素上的多个条件

    我正在尝试创建一个仅在满足多个条件时才匹配文档的查询 过滤器在同一个项目上一个数组的 假设这是文档 arr f1 a f2 true f1 b f2 false 我希望能够检索在同一元素上有 N 个条件匹配的文档 例如 arr f1 a A
  • elasticsearch - 具有多个条件的术语过滤器

    我想实现一次对ES的搜索具有2个或更多条件的多个值 For Eg customer index has 2 fields userid and order 我使用下面的查询来搜索与这两个字段匹配的结果 query filtered quer
  • 如何使用 python 的 elasticsearch DSL 访问响应对象

    我有以下代码 s Search using Elasticsearch http user passwd ipaddress index myindex q Q multi match query some query fields all
  • 从 ElasticSearch 中的嵌套字段中删除对象

    ElasticSearch 中有没有一种方法可以删除嵌套字段数组中的一些对象 所以我有一个嵌套字段 它返回对象数组 我需要删除嵌套字段中的一些对象 是否可以在查询中这样做 或者我需要在我的代码中这样做 这些额外的嵌套文档是隐藏的 我们无法直
  • 当结果少于scrollSize设置时,Scroll SearchResponse不可迭代

    我有一个这样的循环 while true scrollResp client prepareSearchScroll scrollResp getScrollId setScroll new TimeValue 600000 execute
  • Titan 加载弹性搜索问题

    我使用以下代码来加载泰坦 TitanFactory Builder config TitanFactory build config set storage backend berkeleyje config set storage dir
  • 使用elasticsearch按一天中的时间累积流量

    我正在接收来自大量客户端应用程序的请求 事件 我想使用elasticsearch 来找出我的最高流量点是什么时候 我尝试过的一件事是使用嵌套直方图进行过滤器聚合 然后使用嵌套的 术语 聚合 通过脚本字段获取一天中的不同时间 以下是我的尝试
  • 如何连接Kafka和Elasticsearch?

    我是Kafka的新手 我使用kafka通过logstash收集netflow 可以 并且我想将数据从kafka发送到elasticsearch 但是存在一些问题 我的问题是如何将 Kafka 与 Elasticsearch 连接起来 net
  • Elasticsearch 中的分析器有什么用?

    我在理解弹性搜索分析器时遇到一些问题 它的用途是什么以及如何使用它 From 本文 https www elastic co blog found text analysis part 1 有来自源文本的分词器和分词过滤器 我是否无法理解来
  • 如何用Python为ElasticSearch创建只读客户端?

    我想从 ES 读取数据 但不想意外向其中写入数据 无索引操作 这只是一种安全措施 以便以后修改查询函数的其他人不允许插入数据 当你说你想要只读客户端时 客户端强调您系统中的同一集群可能有其他客户端 然后阻止整个索引为只读将会阻止所有客户端的
  • Elasticsearch批量设置_id

    当我使用 id 设置将文档添加到 elasticsearch 时 我得到 Field id is a metadata field and cannot be added inside a document Use the index AP
  • 在ElasticSearch中搜索没有时间的日期字段值

    我的数据中有一个日期字段为 type date format dateOptionalTime 现在我的日期字段和值是 INITIAL EXTRACT DATE 2015 04 02T06 47 57 78 05 30 在搜索时 我仅根据
  • 在 ElasticSearch 7+ 中,如何搜索所有文本字段?

    我想在 Elasticsearch 7 3 中存储的文档中搜索单词 我希望在以前版本的 Elasticsearch 上运行的一个示例是 query bool must match all oliver must not should fro

随机推荐