def searchQueryAll(self, *args, **kwargs):
        """
        Experimental Method

        Execute a Search query, retrieving all rows.

        This method returns a :class:`Deferred` object which is executed
        with a :class:`~.SearchRequest` object. The object may be iterated
        over to yield the rows in the result set.

        This method is similar to :meth:`~couchbase.bucket.Bucket.search`
        in its arguments.

        Example::

            def handler(req):
                for row in req:
                    # ... handle row

            d = cb.search('name', ft.MatchQuery('nosql'), limit=10)
            d.addCallback(handler)

        :return: A :class:`Deferred`

        .. seealso:: :meth:`~couchbase.bucket.Bucket.search`
        """

        if not self.connected:
            cb = lambda x: self.searchQueryAll(*args, **kwargs)
            return self.connect().addCallback(cb)

        kwargs['itercls'] = BatchedSearchRequest
        o = super(AsyncBucket, self).search(*args, **kwargs)
        o.start()
        return o._getDeferred()
Experimental Method

        Execute a Search query, retrieving all rows.

        This method returns a :class:`Deferred` object which is executed
        with a :class:`~.SearchRequest` object. The object may be iterated
        over to yield the rows in the result set.

        This method is similar to :meth:`~couchbase.bucket.Bucket.search`
        in its arguments.

        Example::

            def handler(req):
                for row in req:
                    # ... handle row

            d = cb.search('name', ft.MatchQuery('nosql'), limit=10)
            d.addCallback(handler)

        :return: A :class:`Deferred`

        .. seealso:: :meth:`~couchbase.bucket.Bucket.search`