Error while querying with multiple terms in Elasticsearch


Following is the query I am trying on Elasticsearch. Basically, I want to filter by two fields.

GET /users/doc/_search
{
    "size": 20, 
    "query": {
        "term" : {
            "FirstName.keyword": "foo",
            "LastName.keyword": "bar"
        }
    }
}

and i am getting following exception

{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "[term] query doesn't support multiple fields, found [FirstName.keyword] and [FirstName.keyword]",
        "line": 6,
        "col": 39
      }
    ],
    "type": "parsing_exception",
    "reason": "[term] query doesn't support multiple fields, found [LastName.keyword] and [LastName.keyword]",
    "line": 6,
    "col": 39
  },
  "status": 400
}

1 Answer

6 years ago by

Change your query to following

GET /users/doc/_search
{
  "query": {
    "bool": {
      "must": [
        {
         "term" : {
            "FirstName.keyword": "foo"
          }
        },
        {
          "term" : {
            "LastName.keyword": "bar"
          }
        }
      ]
    }
  }
}
6 years ago by Karthik Divi