'fields: if is [], the _source is not returned'

def __init__(self, query=None, filter=None, fields=None, start=None, size=None, highlight=None, sort=None, explain=False, facet=None, agg=None, rescore=None, window_size=None, version=None, track_scores=None, script_fields=None, index_boost=None, min_score=None, stats=None, bulk_read=None, partial_fields=None, _source=None, timeout=None):

    if (not index_boost):
        index_boost = {}
    self.query = query
    self.filter = filter
    self.fields = fields
    self.start = start
    self.size = size
    self._highlight = highlight
    self.sort = (sort or SortFactory())
    self.explain = explain
    self.facet = (facet or FacetFactory())
    self.agg = (agg or AggFactory())
    self.rescore = rescore
    self.window_size = window_size
    self.version = version
    self.track_scores = track_scores
    self._script_fields = script_fields
    self.index_boost = index_boost
    self.min_score = min_score
    self.stats = stats
    self.bulk_read = bulk_read
    self.partial_fields = partial_fields
    self._source = _source
    self.timeout = timeout
