当前位置: 首页 > 知识库问答 >
问题:

弹性搜索:没有为[或]注册查询

吕向荣
2023-03-14

有人能帮我解决这个问题吗?我收到一个错误返回:“没有为[注册查询或]”我是否结构错误?它应该过滤区域为530且开始为空白或区域为530且开始为“06192013”的所有结果,然后在此基础上使用其他过滤器提升文档。

{
  "query": {
    "custom_filters_score": {
      "query": {
        "bool": {
          "must": [
            {"field":{"sector":"sector1"}},
            {"term":{"user_type":"ghost"}},
            {"term":{"area":"530"}}
          ]
        },
        "filter":{
          "or": [
            {
              "and": [
                {"term":{"area":"530"}},
                {"term":{"start":"06192013"}}
              ]
            },
            {
              "and": [
                {"term":{"area":"530"}},
                {"term":{"start":"blank"}}
              ]
            }
          ]
        }
      },
      "filters": [
        {"filter":{"term":{"relevance" :5726}},"boost":"1000"},
        {"filter":{"term":{"relevance2":5726}},"boost":"100"}
      ],
      "score_mode":"total"
    }
  }
}

共有1个答案

姜运珧
2023-03-14

包含或过滤器的过滤器对象放错地方了。我猜您想使用包含bool查询和或过滤器的过滤查询,如下所示:

{
    "filtered" : {
        "bool": {
          "must": [
            {"field":{"sector":"sector1"}},
            {"term":{"user_type":"ghost"}},
            {"term":{"area":"530"}}
          ]
        },
        "filter" : {
            "or": [
            {
              "and": [
                {"term":{"area":"530"}},
                {"term":{"start":"06192013"}}
              ]
            },
            {
              "and": [
                {"term":{"area":"530"}},
                {"term":{"start":"blank"}}
              ]
            }
          ]
        }
    }
}
 类似资料:
  • 我试图从弹性搜索获取记录,我得到这个错误如下 我的Java代码如下 请让我知道,如果我错过了一些东西,而试图索引,我是新的弹性搜索。 同样,如果我想在我的查询中包括一个以上的条件,如下面所示 下面是上述查询的结果,它工作正常 我如何与上面的geoboundingbox查询相结合?我需要将其添加为过滤器吗? 更新:依赖关系 提前谢谢Rakesh

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我正在LDAP服务器上工作。它有弹性搜索。我必须用一些Javascript代码(JSON格式)发送查询。 这是我的查询: 我试图打印所有结果,其中“server”=“server\u name”(该字段是server:server\u name…)。我认为关于弹性搜索的文档太小了。我找到了一些文档,但都是一样的,对新用户没有帮助。这个例子太简单了。 此查询返回所有结果,包括任何筛选器。 Ps:这就

  • 我已经使用ES一段时间了,但今天不起作用。我重新创建了docker compose(smt可以在那里吗?),以下是我在ES中获得的数据: 编辑:这是我的输入(这里我有\u source=False) 架构: 具有“全部匹配”查询的文档(部分): 现在查询: 退货 知道问题出在哪里吗? 编辑:使用curl查询{“query”:{“bool”:{“must”:[{“match”:{“integer”:

  • 我在术语查询中要求弹性搜索中的嵌套字段,其中嵌套字段值应与术语查询中提供的值的数量完全匹配。例如,考虑下面的查询,在这里我们对名为类型的嵌套字段进行查询。 GET资产/_search 索引映射 样本文件: 上述查询应返回字段类型正好有2个值的文档,即“VOD”

  • 我刚加入弹性搜索公司。而不知道如何在JSON请求中对索引和an类型发出正确的请求?(所以我不想像localhost:9200/myindex/mytype/_search那样在URL中使用索引和类型,而是向localhost:9200/_search发出JSON请求) 我试过这样的东西。但我得到的结果是'AAA'索引而不是'BBB'索引。如何只从bbb索引得到结果或者根本没有结果?