Udhav Mohata
Udhav Mohata

Reputation: 99

malformed query, expected "END_OBJECT" but found "FIELD_NAME"

Hello while running a term query in Kibana console, I am getting a parsing_exception

Query

GET /products/_search
{
  "query": {
    "terms": {
      "tags.keyword": [ "Soup", "Cake" ]
    },
    "range": {
      "in_stock": {
        "gte": 10,
        "lte": 20
      }
    }
  }
}

Response/Exception

{
  "error" : {
    "root_cause" : [
      {
        "type" : "parsing_exception",
        "reason" : "[terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
        "line" : 6,
        "col" : 5
      }
    ],
    "type" : "parsing_exception",
    "reason" : "[terms] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
    "line" : 6,
    "col" : 5
  },
  "status" : 400
}

Can anyone tell me why I got this exception and how to solve it?

Upvotes: 2

Views: 6259

Answers (1)

Bhavya
Bhavya

Reputation: 16172

You need to use boolean query to combine terms and range query. Modify your search query as shown below -

{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "tags.keyword": [
              "Soup",
              "Cake"
            ]
          }
        },
        {
          "range": {
            "in_stock": {
              "gte": 10,
              "lte": 20
            }
          }
        }
      ]
    }
  }
}

Upvotes: 2

Related Questions