? default_search_factor-D5.patch ? default_search_factor_0.patch Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.776.2.28 diff -u -p -r1.776.2.28 node.module --- modules/node/node.module 7 Jun 2008 00:52:54 -0000 1.776.2.28 +++ modules/node/node.module 10 Jul 2008 10:41:31 -0000 @@ -960,12 +960,22 @@ function node_search($op = 'search', $ke $join2 .= ' LEFT JOIN {node_counter} nc ON nc.nid = i.sid'; $total += $weight; } - $select2 = (count($ranking) ? implode(' + ', $ranking) : 'i.relevance') .' AS score'; - - // Do search + + // When all search factors are disabled (ie they have a weight of zero), + // the default score is based only on keyword relevance and there is no need to + // adjust the score of each item. + if ($total == 0) { + $select2 = 'i.relevance AS score'; + $total = 1; + } + else { + $select2 = implode(' + ', $ranking) . ' AS score'; + } + + // Do search. $find = do_search($keys, 'node', 'INNER JOIN {node} n ON n.nid = i.sid '. $join1 .' INNER JOIN {users} u ON n.uid = u.uid', $conditions1 . (empty($where1) ? '' : ' AND '. $where1), $arguments1, $select2, $join2, $arguments2); - // Load results + // Load results. $results = array(); foreach ($find as $item) { // Build the node body. @@ -973,9 +983,9 @@ function node_search($op = 'search', $ke $node = node_build_content($node, FALSE, FALSE); $node->body = drupal_render($node->content); - // Fetch comments for snippet + // Fetch comments for snippet. $node->body .= module_invoke('comment', 'nodeapi', $node, 'update index'); - // Fetch terms for snippet + // Fetch terms for snippet. $node->body .= module_invoke('taxonomy', 'nodeapi', $node, 'update index'); $extra = node_invoke_nodeapi($node, 'search result');