Index: modules/node/node.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.module,v
retrieving revision 1.971
diff -u -r1.971 node.module
--- modules/node/node.module	3 Aug 2008 19:02:06 -0000	1.971
+++ modules/node/node.module	20 Aug 2008 11:41:14 -0000
@@ -1293,13 +1293,13 @@
         $total = 1;
         $arguments2 = array();
         $join2 = '';
-        $select2 = 'i.relevance AS score';
+        $select2 = 'SUM(i.relevance) AS score';
       }
       else {
         $total = $rankings['total'];
         $arguments2 = $rankings['arguments'];
         $join2 = implode(' ', $rankings['join']);
-        $select2 = '('. implode(' + ', $rankings['score']) .') AS score';
+        $select2 = 'SUM('. implode(' + ', $rankings['score']) .') AS score';
       }
 
       // Do search.
@@ -1365,7 +1365,7 @@
     $ranking['recent'] = array(
       'title' => t('Recently posted'),
       // Exponential decay with half-life of 6 months, starting at last indexed node
-      'score' => '(POW(2, GREATEST(n.created, n.changed) - %d) * 6.43e-8)',
+      'score' => '(POW(2.0, GREATEST(n.created, n.changed) - %d) * 6.43e-8)',
       'arguments' => array($node_cron_last),
     );
   }
Index: modules/search/search.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/search/search.module,v
retrieving revision 1.262
diff -u -r1.262 search.module
--- modules/search/search.module	14 Aug 2008 20:13:55 -0000	1.262
+++ modules/search/search.module	20 Aug 2008 11:41:15 -0000
@@ -913,7 +913,7 @@
  *
  * @ingroup search
  */
-function do_search($keywords, $type, $join1 = '', $where1 = '1 = 1', $arguments1 = array(), $columns2 = 'i.relevance AS score', $join2 = '', $arguments2 = array(), $sort_parameters = 'ORDER BY score DESC') {
+function do_search($keywords, $type, $join1 = '', $where1 = '1 = 1', $arguments1 = array(), $columns2 = 'SUM(i.relevance) AS score', $join2 = '', $arguments2 = array(), $sort_parameters = 'ORDER BY score DESC') {
   $query = search_parse_query($keywords);
 
   if ($query[2] == '') {
@@ -945,7 +945,7 @@
   if (!$normalize) {
     return array();
   }
-  $columns2 = str_replace('i.relevance', '(' . (1.0 / $normalize) . ' * SUM(i.score * t.count))', $columns2);
+  $columns2 = str_replace('i.relevance', '(' . (1.0 / $normalize) . ' * i.score * t.count)', $columns2);
 
   // Build query to retrieve results.
   $select = "SELECT i.type, i.sid, $columns2 FROM {search_index} i $join $join2 WHERE $conditions GROUP BY i.type, i.sid HAVING COUNT(*) >= %d";
