<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def search(self, q=None, has_geo=False, callback=None, errback=None):
 """ Search within a zone for specific metadata. Zone must already be loaded. """

        if not self.data:
            raise ZoneException('zone not loaded')

        return self._rest.search(self.zone, q, has_geo, callback, errback)