annotate forum/Sources/DbSearch-mysql.php @ 85:6d7b61434be7 website

Add a copy of this here, just in case!
author Chris Cannam
date Mon, 20 Jan 2014 11:02:36 +0000
parents e3e11437ecea
children
rev   line source
Chris@76 1 <?php
Chris@76 2
Chris@76 3 /**
Chris@76 4 * Simple Machines Forum (SMF)
Chris@76 5 *
Chris@76 6 * @package SMF
Chris@76 7 * @author Simple Machines http://www.simplemachines.org
Chris@76 8 * @copyright 2011 Simple Machines
Chris@76 9 * @license http://www.simplemachines.org/about/smf/license.php BSD
Chris@76 10 *
Chris@76 11 * @version 2.0
Chris@76 12 */
Chris@76 13
Chris@76 14 if (!defined('SMF'))
Chris@76 15 die('Hacking attempt...');
Chris@76 16
Chris@76 17 /* This file contains database functions specific to search related activity.
Chris@76 18
Chris@76 19 void db_search_init()
Chris@76 20 - adds the functions in this file to the $smcFunc array
Chris@76 21
Chris@76 22 boolean smf_db_search_support($search_type)
Chris@76 23 - whether this database type support the search type $search_type
Chris@76 24
Chris@76 25 void smf_db_create_word_search($size)
Chris@76 26 - create the custom word index table
Chris@76 27
Chris@76 28 */
Chris@76 29
Chris@76 30 // Add the file functions to the $smcFunc array.
Chris@76 31 function db_search_init()
Chris@76 32 {
Chris@76 33 global $smcFunc;
Chris@76 34
Chris@76 35 if (!isset($smcFunc['db_search_query']) || $smcFunc['db_search_query'] != 'smf_db_query')
Chris@76 36 $smcFunc += array(
Chris@76 37 'db_search_query' => 'smf_db_query',
Chris@76 38 'db_search_support' => 'smf_db_search_support',
Chris@76 39 'db_create_word_search' => 'smf_db_create_word_search',
Chris@76 40 'db_support_ignore' => true,
Chris@76 41 );
Chris@76 42 }
Chris@76 43
Chris@76 44 // Does this database type support this search type?
Chris@76 45 function smf_db_search_support($search_type)
Chris@76 46 {
Chris@76 47 $supported_types = array('fulltext');
Chris@76 48
Chris@76 49 return in_array($search_type, $supported_types);
Chris@76 50 }
Chris@76 51
Chris@76 52 // Highly specific - create the custom word index table!
Chris@76 53 function smf_db_create_word_search($size)
Chris@76 54 {
Chris@76 55 global $smcFunc;
Chris@76 56
Chris@76 57 if ($size == 'small')
Chris@76 58 $size = 'smallint(5)';
Chris@76 59 elseif ($size == 'medium')
Chris@76 60 $size = 'mediumint(8)';
Chris@76 61 else
Chris@76 62 $size = 'int(10)';
Chris@76 63
Chris@76 64 $smcFunc['db_query']('', '
Chris@76 65 CREATE TABLE {db_prefix}log_search_words (
Chris@76 66 id_word {raw:size} unsigned NOT NULL default {string:string_zero},
Chris@76 67 id_msg int(10) unsigned NOT NULL default {string:string_zero},
Chris@76 68 PRIMARY KEY (id_word, id_msg)
Chris@76 69 ) ENGINE=InnoDB',
Chris@76 70 array(
Chris@76 71 'string_zero' => '0',
Chris@76 72 'size' => $size,
Chris@76 73 )
Chris@76 74 );
Chris@76 75 }
Chris@76 76
Chris@76 77 ?>