From 9470e4d1ed65fb1e9dfeaeb167aab10584cb50e1 Mon Sep 17 00:00:00 2001 From: David Monllao Date: Thu, 24 Mar 2016 16:28:33 +0800 Subject: [PATCH] MDL-53272 search: Remove search results cache --- lang/en/cache.php | 1 - lib/db/caches.php | 8 ---- lib/db/events.php | 4 -- report/search/index.php | 4 -- search/classes/manager.php | 42 --------------------- search/classes/observer.php | 48 ------------------------ search/engine/solr/tests/engine_test.php | 1 - version.php | 2 +- 8 files changed, 1 insertion(+), 109 deletions(-) delete mode 100644 search/classes/observer.php diff --git a/lang/en/cache.php b/lang/en/cache.php index 327da655308..8ebb54e2d39 100644 --- a/lang/en/cache.php +++ b/lang/en/cache.php @@ -59,7 +59,6 @@ $string['cachedef_plugin_functions'] = 'Plugins available callbacks'; $string['cachedef_plugin_manager'] = 'Plugin info manager'; $string['cachedef_questiondata'] = 'Question definitions'; $string['cachedef_repositories'] = 'Repositories instances data'; -$string['cachedef_search_results'] = 'Search results user data'; $string['cachedef_grade_categories'] = 'Grade category queries'; $string['cachedef_string'] = 'Language string cache'; $string['cachedef_tags'] = 'Tags collections and areas'; diff --git a/lib/db/caches.php b/lib/db/caches.php index f5d59488af5..09902dde8a8 100644 --- a/lib/db/caches.php +++ b/lib/db/caches.php @@ -263,14 +263,6 @@ $definitions = array( 'staticacceleration' => true, ), - // Caches search results. - 'search_results' => array( - 'mode' => cache_store::MODE_SESSION, - 'simplekeys' => true, - 'staticacceleration' => true, - 'staticaccelerationsize' => 3 - ), - // Grade categories. Stored at session level as invalidation is very aggressive. 'grade_categories' => array( 'mode' => cache_store::MODE_SESSION, diff --git a/lib/db/events.php b/lib/db/events.php index 26f1dc3a6fb..a9ccfc08bd9 100644 --- a/lib/db/events.php +++ b/lib/db/events.php @@ -54,10 +54,6 @@ $observers = array( 'eventname' => '\core\event\user_updated', 'callback' => 'core_badges_observer::profile_criteria_review', ), - array( - 'eventname' => '\core\event\search_indexed', - 'callback' => 'core_search_observer::invalidate_caches', - ), ); // List of all events triggered by Moodle can be found using Events list report. diff --git a/report/search/index.php b/report/search/index.php index 64b435c1cf9..6bdbd0c494f 100644 --- a/report/search/index.php +++ b/report/search/index.php @@ -64,10 +64,6 @@ if ($data = $mform->get_data()) { if (!empty($data->all) || $anydelete) { echo $OUTPUT->notification(get_string('deleted', 'report_search'), 'notifysuccess'); - - // Purge the cache. - $cache = \cache::make('core', 'search_results'); - $cache->purge(); } } diff --git a/search/classes/manager.php b/search/classes/manager.php index e4a1bee2a5c..1a84344b942 100644 --- a/search/classes/manager.php +++ b/search/classes/manager.php @@ -402,17 +402,6 @@ class manager { public function search(\stdClass $formdata) { global $USER; - $cache = \cache::make('core', 'search_results'); - - // Generate a string from all query filters - // Not including $areascontext here, being a user cache it is not needed. - $querykey = $this->generate_query_key($formdata, $USER->id); - - // Look for cached results before executing it. - if ($results = $cache->get($querykey)) { - return $results; - } - // Clears previous query errors. $this->engine->clear_query_error(); @@ -424,40 +413,9 @@ class manager { $docs = $this->engine->execute_query($formdata, $areascontexts); } - // Cache results. - $cache->set($querykey, $docs); - return $docs; } - /** - * We generate the key ourselves so MUC knows that it contains simplekeys. - * - * @param stdClass $formdata - * @return string - */ - protected function generate_query_key($formdata) { - global $USER; - - // Empty values by default (although q should always have a value). - $fields = array('q', 'title', 'areaid', 'timestart', 'timeend', 'page'); - - // Just in this function scope. - $params = clone $formdata; - foreach ($fields as $field) { - if (empty($params->{$field})) { - $params->{$field} = ''; - } - } - - // Although it is not likely, we prevent cache hits if available search areas change during the session. - $enabledareas = implode('-', array_keys(static::get_search_areas_list(true))); - - return md5($params->q . 'userid=' . $USER->id . 'title=' . $params->title . 'areaid=' . $params->areaid . - 'timestart=' . $params->timestart . 'timeend=' . $params->timeend . 'page=' . $params->page . - $enabledareas); - } - /** * Merge separate index segments into one. */ diff --git a/search/classes/observer.php b/search/classes/observer.php deleted file mode 100644 index f7e6d48f353..00000000000 --- a/search/classes/observer.php +++ /dev/null @@ -1,48 +0,0 @@ -. - -/** - * Events observer for core_search purposes. - * - * @package core_search - * @copyright 2015 David Monllao {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die(); - -/** - * Event observer for search. - * - * @package core_search - * @copyright 2015 David Monllao {@link http://www.davidmonllao.com} - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ -class core_search_observer { - - /** - * Invalidates search results cache. - * - * Quite aggressive as search_results cache is per session. - * - * @param \core\event\search_indexed $event - * @return void - */ - public static function invalidate_caches(\core\event\search_indexed $event) { - $cache = \cache::make('core', 'search_results'); - $cache->purge(); - } -} diff --git a/search/engine/solr/tests/engine_test.php b/search/engine/solr/tests/engine_test.php index f31f6e38130..b0cd0c2ad19 100644 --- a/search/engine/solr/tests/engine_test.php +++ b/search/engine/solr/tests/engine_test.php @@ -199,7 +199,6 @@ class search_solr_engine_testcase extends advanced_testcase { $areaid = \core_search\manager::generate_areaid('core_mocksearch', 'role_capabilities'); $this->search->delete_index($areaid); - cache_helper::purge_by_definition('core', 'search_results'); $this->assertCount(0, $this->search->search($querydata)); } diff --git a/version.php b/version.php index f45f99dfddd..05fb98a270a 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2016033100.00; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2016033100.01; // YYYYMMDD = weekly release date of this DEV branch. // RR = release increments - 00 in DEV branches. // .XX = incremental changes.