Index: apachesolr_search.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/apachesolr_search.module,v
retrieving revision 1.1.2.6.2.88
diff -u -p -r1.1.2.6.2.88 apachesolr_search.module
--- apachesolr_search.module	30 Apr 2009 17:38:41 -0000	1.1.2.6.2.88
+++ apachesolr_search.module	7 May 2009 01:24:43 -0000
@@ -53,6 +53,43 @@ function apachesolr_search_menu() {
 }
 
 /**
+ * Implementation of hook_menu_alter().
+ */
+function apachesolr_search_menu_alter(&$menu) {
+  if (isset($menu['search/apachesolr_search/%menu_tail'])) {
+    $menu['search/apachesolr_search/%menu_tail']['page callback'] = 'apachesolr_search_view';
+    $menu['search/apachesolr_search'] = $menu['search/apachesolr_search/%menu_tail'];
+    unset($menu['search/apachesolr_search/%menu_tail']);
+  }
+}
+
+/**
+ * Re-implementation of search_view().
+ */
+function apachesolr_search_view($type) {
+    $keys = trim(search_get_keys());
+    $filters = isset($_GET['filters']) ? trim($_GET['filters']) : '';
+    // Only perform search if there is non-whitespace search term or filters:
+    $results = '';
+    if ($keys || $filters) {
+      // Log the search keys:
+      watchdog('search', '%keys filters=%filters (@type).', array('%keys' => $keys, '%filters' => $filters, '@type' => t('Search')), WATCHDOG_NOTICE, l(t('results'), 'search/'. $type .'/'. $keys));
+
+      // Collect the search results:
+      $results = search_data($keys, $type);
+
+      if ($results) {
+        $results = theme('box', t('Search results'), $results);
+      }
+      else {
+        $results = theme('box', t('Your search yielded no results'), search_help('search#noresults', drupal_help_arg()));
+      }
+    }
+    // Construct the search form.
+    return drupal_get_form('search_form', NULL, $keys, $type) . $results;
+}
+
+/**
  * Implementation of hook_update_index().
  */
 function apachesolr_search_update_index() {
@@ -90,12 +127,8 @@ function apachesolr_search_search($op = 
     case 'search':
 
       try {
-        if (empty($filters) && !empty($_GET['filters'])) {
-          $filters = $_GET['filters'];
-        }
-        if (empty($solrsort) && !empty($_GET['solrsort'])) {
-          $solrsort = $_GET['solrsort'];
-        }
+        $filters = isset($_GET['filters']) ? $_GET['filters'] : '';
+        $solrsort = isset($_GET['solrsort']) ? $_GET['solrsort'] : '';
         // This is the object that knows about the query coming from the user.
         $query = apachesolr_drupal_query($keys, $filters, $solrsort, 'search/' . arg(1));
         if (empty($query)) {
