【问题标题】:How to build a query with the AND operator?如何使用 AND 运算符构建查询?
【发布时间】:2014-04-02 00:20:46
【问题描述】:

我无法通过过滤器或查询使用运算符“AND”执行查询。

我读过:

我试过了:

'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"}}
      ] 
    } 
  }
} '

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

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    试试:

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

    您需要在请求正文中发布它。

    【讨论】:

    • 谢谢,问题出在我使用GET方法
    猜你喜欢
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多