'Add a filter, or a list of filters, to the query.
If a sequence of filters is supplied, they are all added, and will be
combined with an ANDFilter.
If a sequence of queries is supplied, they are all added, and will be
combined with an BooleanQuery(must) .'

def add(self, filter_or_query):

    if isinstance(filter_or_query, Filter):
        if self.queries:
            raise QueryError('A    Query    is    required')
        self.filters.append(filter_or_query)
    elif isinstance(filter_or_query, Query):
        if self.filters:
            raise QueryError('A    Filter    is    required')
        self.queries.append(filter_or_query)
    else:
        for item in filter_or_query:
            self.add(item)
    return self
