#252580 by Robert Douglass, Gerhard Killesreiter, flobruit: avoid division by zero, when all search weights are set to 0
parent
a5305ac461
commit
ef5db918f8
|
@ -1257,12 +1257,22 @@ function node_search($op = 'search', $keys = NULL) {
|
|||
$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.
|
||||
|
@ -1271,9 +1281,9 @@ function node_search($op = 'search', $keys = NULL) {
|
|||
$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');
|
||||
|
|
Loading…
Reference in New Issue