elasticsearch range filter for array field elasticsearch range filter for array field elasticsearch elasticsearch

elasticsearch range filter for array field


Elasticsearch always considers that a field can contain a list of values so, a range filter should work. If any of the values matches the range it will be filtered in.

You can use that filter as part of a filtered query:

{  "query": {    "filtered": {      "filter": {        "range": {          "prices": {            "gte": 10000,            "lte": 20002          }        }      }    }  }}

However, filtered query is deprecated in 2.0, so, if you are using 2.0 you can better use a bool query with a filter:

{  "query": {    "bool": {      "must": {        "match_all": {}         },        "filter": {        "range": {          "prices": {            "gte": 10000,            "lte": 20002          }        }      }    }  }}

Note that I'm using a filter in my examples because you asked for a filter :)