public function searchFetchByIds($object_ids, $loader_class_name, &$counter, $params = array(), $fetch_method = 'fetch_by_ids')
 {
     if (!$this->_query_object) {
         return array();
     }
     $search = new FullTextSearch();
     $search_result = $search->findByIds($object_ids, $this->_query_object);
     if (!count($search_result)) {
         return array();
     }
     $counter = 0;
     $count_method = $fetch_method . '_count';
     $site_object = Limb::toolkit()->createSiteObject($loader_class_name);
     $counter = $site_object->{$count_method}(array_keys($search_result), $params);
     $fetched_objects = $site_object->{$fetch_method}(array_keys($search_result), $params);
     if (!count($fetched_objects)) {
         return array();
     }
     foreach ($search_result as $key => $score) {
         if (isset($fetched_objects[$key])) {
             $result[$key] = $fetched_objects[$key];
             $result[$key]['score'] = $score;
         }
     }
     Limb::toolkit()->getAuthorizer()->assignActionsToObjects($result);
     $this->_assignPaths($result);
     $this->_assignSearchPaths($result, isset($params['offset']) ? $params['offset'] : 0);
     return $result;
 }