<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def boost_object(self, obj_id=None, obj_type=None, multiplier=1.1, relative=True):
 """ Boost search results for the given object or type by the amount specified. When the ``multiplier`` is greater than 1, the results will percolate to the top. Values between 0 and 1 will percolate results to the bottom. Either an ``obj_id`` or ``obj_type`` (or both) must be specified. :param obj_id: An object's unique identifier (optional). :param obj_type: The object's type (optional). :param multiplier: A positive floating-point number. :param relative: If ``True``, then any pre-existing saved boost will be updated using the given multiplier. Examples: .. code-block:: python # Make all objects of type=photos percolate to top. ac.boost_object(obj_type='photo', multiplier=2.0) # Boost a particularly popular blog entry. ac.boost_object( popular_entry.id, 'entry', multipler=5.0, relative=False) """

        combined_id = self.object_key(obj_id or '', obj_type or '')
        if relative:
            current = float(self._boosts[combined_id] or 1.0)
            self._boosts[combined_id] = current * multiplier
        else:
            self._boosts[combined_id] = multiplier