diff --git a/include/class.search.php b/include/class.search.php index 6cac6d7e4e9d51ee436589114633cb6fe7770af8..dbf1f7eacb208e77d9ef31e074fb8781061c2969 100644 --- a/include/class.search.php +++ b/include/class.search.php @@ -376,7 +376,7 @@ class MysqlSearchBackend extends SearchBackend { $criteria->extra(array( 'tables' => array( str_replace(array(':', '{}'), array(TABLE_PREFIX, $search), - "(SELECT COALESCE(Z3.`object_id`, Z5.`ticket_id`, Z8.`ticket_id`) as `ticket_id`, {} AS `relevance` FROM `:_search` Z1 LEFT JOIN `:thread_entry` Z2 ON (Z1.`object_type` = 'H' AND Z1.`object_id` = Z2.`id`) LEFT JOIN `:thread` Z3 ON (Z2.`thread_id` = Z3.`id` AND Z3.`object_type` = 'T') LEFT JOIN `:ticket` Z5 ON (Z1.`object_type` = 'T' AND Z1.`object_id` = Z5.`ticket_id`) LEFT JOIN `:user` Z6 ON (Z6.`id` = Z1.`object_id` and Z1.`object_type` = 'U') LEFT JOIN `:organization` Z7 ON (Z7.`id` = Z1.`object_id` AND Z7.`id` = Z6.`org_id` AND Z1.`object_type` = 'O') LEFT JOIN :ticket Z8 ON (Z8.`user_id` = Z6.`id`) WHERE {}) Z1"), + "(SELECT COALESCE(Z3.`object_id`, Z5.`ticket_id`, Z8.`ticket_id`) as `ticket_id`, SUM({}) AS `relevance` FROM `:_search` Z1 LEFT JOIN `:thread_entry` Z2 ON (Z1.`object_type` = 'H' AND Z1.`object_id` = Z2.`id`) LEFT JOIN `:thread` Z3 ON (Z2.`thread_id` = Z3.`id` AND Z3.`object_type` = 'T') LEFT JOIN `:ticket` Z5 ON (Z1.`object_type` = 'T' AND Z1.`object_id` = Z5.`ticket_id`) LEFT JOIN `:user` Z6 ON (Z6.`id` = Z1.`object_id` and Z1.`object_type` = 'U') LEFT JOIN `:organization` Z7 ON (Z7.`id` = Z1.`object_id` AND Z7.`id` = Z6.`org_id` AND Z1.`object_type` = 'O') LEFT JOIN :ticket Z8 ON (Z8.`user_id` = Z6.`id`) WHERE {} GROUP BY `ticket_id`) Z1"), ) )); $criteria->filter(array('ticket_id'=>new SqlCode('Z1.`ticket_id`'))); diff --git a/include/staff/tickets.inc.php b/include/staff/tickets.inc.php index 5adab6cec0eb49ac93584102a36b4b8c646bd90b..6e2defbe79fdb41bf0fa478119cbf8682e91a7bd 100644 --- a/include/staff/tickets.inc.php +++ b/include/staff/tickets.inc.php @@ -100,7 +100,7 @@ case 'search': // Do wildcard search if no hits $__tickets = $ost->searcher->find($_REQUEST['query'].'*', $tickets); } - $tickets = $__tickets->distinct('ticket_id'); + $tickets = $__tickets; $has_relevance = true; } if (count($tickets) == 1) {