diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index 9b8afb9785e002540cf54e0864282475d5abf711..57df9e01333c5465944d1cb166b04b7f1ba436e9 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -46,7 +46,9 @@ class TicketsAjaxAPI extends AjaxController {
             ->values('user__default_email__address')
             ->annotate(array(
                 'number' => new SqlCode('null'),
-                'tickets' => SqlAggregate::COUNT('ticket_id', true)))
+                'tickets' => SqlAggregate::COUNT('ticket_id', true),
+            ))
+            ->order_by(SqlAggregate::SUM(new SqlCode('Z1.relevance')), QuerySet::DESC)
             ->limit($limit);
 
         $q = $_REQUEST['q'];
@@ -55,18 +57,17 @@ class TicketsAjaxAPI extends AjaxController {
             return $this->encode(array());
 
         global $ost;
-        $hits = $ost->searcher->find($q, $hits)
-            ->order_by(new SqlCode('__relevance__'), QuerySet::DESC);
+        $hits = $ost->searcher->find($q, $hits, false);
 
         if (preg_match('/\d{2,}[^*]/', $q, $T = array())) {
             $hits = Ticket::objects()
                 ->values('user__default_email__address', 'number')
                 ->annotate(array(
                     'tickets' => new SqlCode('1'),
-                    '__relevance__' => new SqlCode(1)
                 ))
                 ->filter($visibility)
                 ->filter(array('number__startswith' => $q))
+                ->order_by('number')
                 ->limit($limit)
                 ->union($hits);
         }