code: def _get_filter_field(field_name, field_value):
      
      filter_field = None
      if isinstance(field_value, ValueRange):
          range_values = {}
          if field_value.lower:
              range_values.update({"gte": field_value.lower_string})
          if field_value.upper:
              range_values.update({"lte": field_value.upper_string})
          filter_field = {
              "range": {
                  field_name: range_values
              }
          }
      elif _is_iterable(field_value):
          filter_field = {
              "terms": {
                  field_name: field_value
              }
          }
      else:
          filter_field = {
              "term": {
                  field_name: field_value
              }
          }
      return filter_field
docs: Return field to apply into filter, if an array then use a range, otherwise look for a term match