docs: def filter_search(self, search):
          """Filter given search by the filter parameter given in request.
  
          :param search: ElasticSearch query object
  
          """
          builder = QueryBuilder(
              self.filtering_fields,
              self.filtering_map,
              self
          )
          search, unmatched = builder.build(search, self.get_query_params())
  
          # Ensure that no unsupported arguments were used.
          for argument in self.get_always_allowed_arguments():
              unmatched.pop(argument, None)
  
          if unmatched:
              msg = 'Unsupported parameter(s): {}. Please use a combination of: {}.'.format(
                  ', '.join(unmatched),
                  ', '.join(self.filtering_fields),
              )
              raise ParseError(msg)
  
          return search