diff options
| author | Bharat Mediratta <bharat@menalto.com> | 2009-01-17 00:52:50 +0000 |
|---|---|---|
| committer | Bharat Mediratta <bharat@menalto.com> | 2009-01-17 00:52:50 +0000 |
| commit | d568a1e9fd63c97eb86cd84a51bb6770747ec37c (patch) | |
| tree | 2b382bce985bce886c69d6d58377c5ce71a0cdc6 /modules/search/helpers/search_event.php | |
| parent | 91be7a38f883cd008d370f81ff68949de68eafbf (diff) | |
Implement relevance ranked boolean searching on a full text index of
item and comment data. Whew!
It's not pretty yet. And you have to manually update the index
currently in admin/maintenance. But it works.
Diffstat (limited to 'modules/search/helpers/search_event.php')
| -rw-r--r-- | modules/search/helpers/search_event.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/modules/search/helpers/search_event.php b/modules/search/helpers/search_event.php new file mode 100644 index 00000000..a29d301b --- /dev/null +++ b/modules/search/helpers/search_event.php @@ -0,0 +1,49 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 Bharat Mediratta + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + */ +class search_event_Core { + static function item_created($item) { + ORM::factory("search_record")->item_id($item->id)->save(); + } + + static function item_updated($old_item, $new_item) { + Database::instance() + ->from("search_records") + ->set("dirty", 1) + ->where("item_id", $new_item->id) + ->update(); + } + + static function item_before_delete($item) { + ORM::factory("item_id", $item->id)->delete_all(); + } + + static function item_related_update($item) { + Database::instance() + ->from("search_records") + ->set("dirty", 1) + ->where("item_id", $item->id) + ->update(); + } + + static function item_related_update_batch($sql) { + $db = Database::instance(); + $db->query("UPDATE `search_records` SET `dirty` = 1 WHERE item_id IN ($sql)"); + } +} |
