diff --git a/views_random_seed_handler_sort_random.inc b/views_random_seed_handler_sort_random.inc
index e6eadf5..ca15aee 100644
--- a/views_random_seed_handler_sort_random.inc
+++ b/views_random_seed_handler_sort_random.inc
@@ -74,20 +74,27 @@ class views_random_seed_handler_sort_random extends views_handler_sort {
   function query() {
     global $db_type;
     $seed = views_random_seed_calculate_seed($this->options, $this->view->name, $this->view->current_display, $db_type);
-    switch ($db_type) {
-      case 'mysql':
-      case 'mysqli':
-        $formula = 'RAND('. $seed .')';
-        break;
-      case 'pgsql':
-        // For PgSQL we'll run an extra query with a integer between
-        // 0 and 1 which will be used by the RANDOM() function.
-        db_query('select setseed('. $seed .')');
-        $res = db_result(db_query("select random()"));
-        $formula = 'RANDOM()';
-        break;
+    if ($this->view->base_table == 'apachesolr_node') {
+      $order = 'asc';
+      $formula = 'random_' . $seed;
+      $this->query->add_sort($formula, $order);
+    }
+    else {
+      switch ($db_type) {
+        case 'mysql':
+        case 'mysqli':
+          $formula = 'RAND('. $seed .')';
+          break;
+        case 'pgsql':
+          // For PgSQL we'll run an extra query with a integer between
+          // 0 and 1 which will be used by the RANDOM() function.
+          db_query('select setseed('. $seed .')');
+          $res = db_result(db_query("select random()"));
+          $formula = 'RANDOM()';
+          break;
+      }
+      $this->query->add_orderby(NULL, $formula, $this->options['order'], '_' . $this->field);
     }
-    $this->query->add_orderby(NULL, $formula, $this->options['order'], '_' . $this->field);
   }
 }
 
