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

如何使用AND运算符构建查询?

夏侯鹏
2023-03-14

我不能使用操作符“and”执行查询,无论是使用筛选器还是查询。

  • http://www.elasticsearch.org/guide/reference/query-dsl/bool-query/
  • http://www.elasticsearch.org/guide/reference/query-dsl/and-filter/

我试过:

'curl -XGET url_local:9200/chasseur_de_tete/cv/_search -d ' { 
"filtered" : { 
  "query" : { 
    "match_all" : {} },
      "filter" : { 
        "and" : { 
          "filters" : [
            {"term" : {"active" : true }},
            { "term" : { "deleted" : false }}
          ]
        }
      }
    }
} ' 

会产生以下错误的:

{
    "error": "SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures {[9Fx2f7-MSNyYATEMPgemLw][chasseur_de_tete][4]: SearchParseException[[chasseur_de_tete][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [ { \"filtered\" : { \"query\" : { \"match_all\" : {} }, \"filter\" : { \"and\" : { \"filters\" : [{ \"term\" : { \"active\" : \"true\" }},{ \"term\" : { \"deleted\" : \"false\" }}] } }}} ]]]; nested: SearchParseException[[chasseur_de_tete][4]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[9Fx2f7-MSNyYATEMPgemLw][chasseur_de_tete][3]: SearchParseException[[chasseur_de_tete][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [ { \"filtered\" : { \"query\" : { \"match_all\" : {} }, \"filter\" : { \"and\" : { \"filters\" : [{ \"term\" : { \"active\" : \"true\" }},{ \"term\" : { \"deleted\" : \"false\" }}] } }}} ]]]; nested: SearchParseException[[chasseur_de_tete][3]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }]",
    "status": 500
}

我也试过:

`curl url_local:9200/chasseur_de_tete/joboffer/_search -d '{
  "query" : {
    "bool" : {
      "must" : [
         {"term":{"active":"false"}},
         {"term":{"deleted":"true"}}
      ] 
    } 
  }
} '

此查询不返回错误消息,但它返回我的集合的所有记录。

共有1个答案

林项明
2023-03-14

尝试:

{
    "query": {
        "constant_score": {
            "filter": {
                "bool": {
                    "must": [
                        {
                            "term": {
                                "active": false
                            }
                        },
                        {
                            "term": {
                                "deleted": true
                            }
                        }
                    ]
                }
            }
        }
    }
}

您需要将其张贴在请求正文中。

 类似资料:
  • 问题内容: 如何在基于URI的查询中指定AND操作?我正在寻找类似的东西: 问题答案: 根据文档,它应该按您描述的那样工作。参见http://www.elasticsearch.org/guide/reference/query- dsl/query-string- query.html 也就是说,您还可以使用以下内容:

  • 问题内容: 通配符*只能在单词的末尾使用,例如。 我想用like查询,该怎么做? 问题答案: Lucene提供了ReverseStringFilter,它允许执行通配符搜索,例如* user。它通过以相反顺序索引所有术语来工作。 但是我认为没有办法做类似’LIKE%user%’的事情。

  • 问题内容: 我有以下格式的json文件:- 我想根据以下内容查询文档:- 我尝试使用SearchSourceBuilder和QueryBuilders.matchQuery,但无法使用AND和OR运算符放置多个子查询。 我们如何使用OR和AND运算符查询elasticsearch? 问题答案: 我认为在这种情况下,Bool查询是最好的选择。 就像是 : 在Java中: 该部分是S,该部分都或多或少

  • 问题内容: 我正在寻找一种使用数组中的“ IN”子句查询postgres jsonb字段的方法。 假设我有一张桌子 我需要选择test_content数组中的label可能为或的行。 我试过了 但是当我想用包含扩展查询时,或者变得复杂… 我需要的是 jsonb运算符可以吗? 问题答案: 简短答案 您可以在横向联接中使用该函数,并在子句中的复杂表达式中使用其结果: 不同 当在单个行中的多个数组元素中

  • 主要内容:AND 运算符,语法,实例,OR 运算符,语法,实例SQLite 的 AND 和 OR 运算符用于编译多个条件来缩小在 SQLite 语句中所选的数据。这两个运算符被称为连接运算符。 这些运算符为同一个 SQLite 语句中不同的运算符之间的多个比较提供了可能。 AND 运算符 AND 运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。使用 AND 运算符时,只有当所有条件都为真(true)时,整个条件为真(true)。例如,只

  • AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 SQL AND & OR 运算符 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 演示数据库 在本教程中,我们将使用 RUNOOB 样本数据库。 下面是选自 "Websites" 表的数据: +----+--------------+--