? SolrPhpClient
Index: Drupal_Apache_Solr_Service.php
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/Drupal_Apache_Solr_Service.php,v
retrieving revision 1.1.2.20.2.3
diff -u -p -r1.1.2.20.2.3 Drupal_Apache_Solr_Service.php
--- Drupal_Apache_Solr_Service.php	26 Oct 2009 02:12:32 -0000	1.1.2.20.2.3
+++ Drupal_Apache_Solr_Service.php	12 Nov 2009 13:08:30 -0000
@@ -58,7 +58,7 @@ class Drupal_Apache_Solr_Service extends
     if (empty($this->luke[$num_terms])) {
       $url = $this->_constructUrl(self::LUKE_SERVLET, array('numTerms' => "$num_terms", 'wt' => self::SOLR_WRITER));
       $this->luke[$num_terms] = $this->_sendRawGet($url);
-      cache_set($this->luke_cid, $this->luke);
+      cache_set($this->luke_cid, $this->luke, 'cache_apachesolr');
     }
   }
 
@@ -95,7 +95,7 @@ class Drupal_Apache_Solr_Service extends
       else {
         $response = $this->_sendRawGet($url);
         $this->stats = simplexml_load_string($response->getRawResponse());
-        cache_set($this->stats_cid, $response->getRawResponse());
+        cache_set($this->stats_cid, $response->getRawResponse(), 'cache_apachesolr');
       }
     }
   }
@@ -158,8 +158,8 @@ class Drupal_Apache_Solr_Service extends
   }
 
   protected function _clearCache() {
-    cache_clear_all("apachesolr:luke:", 'cache', TRUE);
-    cache_clear_all("apachesolr:stats:", 'cache', TRUE);
+    cache_clear_all("apachesolr:luke:", 'cache_apachesolr', TRUE);
+    cache_clear_all("apachesolr:stats:", 'cache_apachesolr', TRUE);
     $this->luke = array();
     $this->stats = NULL;
   }
Index: apachesolr.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr/apachesolr.install,v
retrieving revision 1.1.4.18.2.3
diff -u -p -r1.1.4.18.2.3 apachesolr.install
--- apachesolr.install	24 Jul 2009 17:38:20 -0000	1.1.4.18.2.3
+++ apachesolr.install	12 Nov 2009 13:08:30 -0000
@@ -56,7 +56,11 @@ function apachesolr_schema() {
       'changed' => array('changed', 'status'),
       ),
     'primary key' => array('nid'),
-    );
+  );
+  $table = drupal_get_schema_unprocessed('system', 'cache');
+  $table['description'] = 'Cache table for apachesolr to store Luke data and indexing information.';
+  $table['fields']['serialized']['default'] = 1;
+  $schema['cache_apachesolr'] = $table;
 
   return $schema;
 }
@@ -176,3 +180,16 @@ function apachesolr_update_6004() {
   $ret[] = update_sql("DELETE FROM {system} WHERE name = 'apachesolr_mlt'");
   return $ret;
 }
+
+
+/**
+ * Add a separate cache table for more efficient cache clearing in memcached situations.
+ */
+function apachesolr_update_6005() {
+  $ret = array();
+  $table = drupal_get_schema_unprocessed('system', 'cache');
+  $table['description'] = 'Cache table for apachesolr to store Luke data and indexing information.';
+  $table['fields']['serialized']['default'] = 1;
+  db_create_table($ret, 'cache_apachesolr', $table);
+  return $ret;
+}
