Call :func:`~okcupyd.json_search.SearchFetchable` to get a
        :class:`~okcupyd.util.fetchable.Fetchable` object that will lazily
        perform okcupid searches to provide :class:`~okcupyd.profile.Profile`
        objects matching the search criteria.

        Defaults for `gender`, `gentation`, `location` and `radius` will
        be provided if none are given.

        :param kwargs: See the :func:`~okcupyd.json_search.SearchFetchable`
                       docstring for details about what parameters are
                       available.

def search(self, **kwargs):
        """Call :func:`~okcupyd.json_search.SearchFetchable` to get a
        :class:`~okcupyd.util.fetchable.Fetchable` object that will lazily
        perform okcupid searches to provide :class:`~okcupyd.profile.Profile`
        objects matching the search criteria.

        Defaults for `gender`, `gentation`, `location` and `radius` will
        be provided if none are given.

        :param kwargs: See the :func:`~okcupyd.json_search.SearchFetchable`
                       docstring for details about what parameters are
                       available.
        """
        kwargs.setdefault('gender', self.profile.gender[0])
        gentation = helpers.get_default_gentation(self.profile.gender,
                                                  self.profile.orientation)
        kwargs.setdefault('gentation', gentation)

        # We are no longer setting location by default because the
        # query api that okcupid offers seems to have gotten much
        # stricter. This should be revisited so that search gives good
        # default results. This is issue #85.

        # kwargs.setdefault('location', self.profile.location)

        kwargs.setdefault('radius', 25)
        kwargs.setdefault('location_cache', self.location_cache)
        if 'count' in kwargs:
            count = kwargs.pop('count')
            return search(session=self._session, count=count, **kwargs)
        return SearchFetchable(self._session, **kwargs)