MediaWiki  REL1_22
SearchMySQL Class Reference

Search engine hook for MySQL 4+. More...

Inheritance diagram for SearchMySQL:
Collaboration diagram for SearchMySQL:

List of all members.

Public Member Functions

 __construct ($db)
 Creates an instance of this class.
 delete ($id, $title)
 Delete an indexed page Title should be pre-processed.
 getCountQuery ($filteredTerm, $fulltext)
 getIndexField ($fulltext)
 Picks which field to index on, depending on what type of query.
 getQuery ($filteredTerm, $fulltext)
 Construct the SQL query to do the search.
 normalizeText ($string)
 Converts some characters for MySQL's indexing to grok it correctly, and pads short words to overcome limitations.
 parseQuery ($filteredText, $fulltext)
 Parse the user's query and transform it into an SQL fragment which will become part of a WHERE clause.
 queryMain (&$query, $filteredTerm, $fulltext)
 Get the base part of the search query.
 queryNamespaces (&$query)
 Add namespace conditions.
 regexTerm ($string, $wildcard)
 searchText ($term)
 Perform a full text search query and return a result set.
 searchTitle ($term)
 Perform a title-only search query and return a result set.
 supports ($feature)
 update ($id, $title, $text)
 Create or update the search index record for the given page.
 updateTitle ($id, $title)
 Update a search index record's title only.

Static Public Member Functions

static legalSearchChars ()

Public Attributes

 $strictMatching = true

Static Public Attributes

static $mMinSearchLength

Protected Member Functions

 limitResult (&$query)
 Add limit options.
 minSearchLength ()
 Check MySQL server's ft_min_word_len setting so we know if we need to pad short words...
 queryFeatures (&$query)
 Add special conditions.
 searchInternal ($term, $fulltext)
 stripForSearchCallback ($matches)
 Armor a case-folded UTF-8 string to get through MySQL's fulltext search without being mucked up by funny charset settings or anything else of the sort.

Detailed Description

Search engine hook for MySQL 4+.

Definition at line 31 of file SearchMySQL.php.


Constructor & Destructor Documentation

Creates an instance of this class.

Parameters:
$dbDatabaseMysql: database object

Reimplemented from SearchEngine.

Definition at line 39 of file SearchMySQL.php.

References SearchEngine\$db.


Member Function Documentation

SearchMySQL::delete ( id,
title 
)

Delete an indexed page Title should be pre-processed.

Parameters:
Integer$idPage id that was deleted
String$titleTitle of page that was deleted

Reimplemented from SearchEngine.

Definition at line 378 of file SearchMySQL.php.

References array(), and wfGetDB().

SearchMySQL::getCountQuery ( filteredTerm,
fulltext 
)
Since:
1.18 (changed)
Returns:
array

Definition at line 318 of file SearchMySQL.php.

References $query, array(), parseQuery(), queryFeatures(), and queryNamespaces().

Referenced by searchInternal().

SearchMySQL::getIndexField ( fulltext)

Picks which field to index on, depending on what type of query.

Parameters:
$fulltextBoolean
Returns:
String

Definition at line 291 of file SearchMySQL.php.

Referenced by parseQuery().

SearchMySQL::getQuery ( filteredTerm,
fulltext 
)

Construct the SQL query to do the search.

The guts shoulds be constructed in queryMain()

Parameters:
$filteredTermString
$fulltextBoolean
Returns:
Array
Since:
1.18 (changed)

Definition at line 269 of file SearchMySQL.php.

References $query, array(), limitResult(), queryFeatures(), queryMain(), and queryNamespaces().

Referenced by searchInternal().

static SearchMySQL::legalSearchChars ( ) [static]

Reimplemented from SearchEngine.

Definition at line 156 of file SearchMySQL.php.

Referenced by parseQuery().

SearchMySQL::limitResult ( &$  query) [protected]

Add limit options.

Parameters:
$queryArray
Since:
1.18

Definition at line 256 of file SearchMySQL.php.

References $query.

Referenced by getQuery().

Check MySQL server's ft_min_word_len setting so we know if we need to pad short words...

Returns:
int

Definition at line 447 of file SearchMySQL.php.

References $dbr, $mMinSearchLength, $result, and wfGetDB().

Referenced by normalizeText().

Converts some characters for MySQL's indexing to grok it correctly, and pads short words to overcome limitations.

Returns:
mixed|string

Reimplemented from SearchEngine.

Definition at line 389 of file SearchMySQL.php.

References $n, $out, $wgContLang, array(), global, minSearchLength(), wfProfileIn(), and wfProfileOut().

Referenced by parseQuery(), update(), and updateTitle().

SearchMySQL::parseQuery ( filteredText,
fulltext 
)

Parse the user's query and transform it into an SQL fragment which will become part of a WHERE clause.

Parameters:
$filteredTextstring
$fulltextstring
Returns:
string

Definition at line 52 of file SearchMySQL.php.

References $regexp, $term, $wgContLang, array(), as, getIndexField(), global, legalSearchChars(), list, normalizeText(), regexTerm(), and wfDebug().

Referenced by getCountQuery(), and queryMain().

SearchMySQL::queryFeatures ( &$  query) [protected]

Add special conditions.

Parameters:
$queryArray
Since:
1.18

Definition at line 227 of file SearchMySQL.php.

References $query, $value, and as.

Referenced by getCountQuery(), and getQuery().

SearchMySQL::queryMain ( &$  query,
filteredTerm,
fulltext 
)

Get the base part of the search query.

Parameters:
&$queryarray Search query array
$filteredTermString
$fulltextBoolean
Since:
1.18 (changed)

Definition at line 303 of file SearchMySQL.php.

References $query, and parseQuery().

Referenced by getQuery().

Add namespace conditions.

Parameters:
$queryArray
Since:
1.18 (changed)

Definition at line 242 of file SearchMySQL.php.

References $query, and namespaces.

Referenced by getCountQuery(), and getQuery().

SearchMySQL::regexTerm ( string,
wildcard 
)

Definition at line 137 of file SearchMySQL.php.

References $wgContLang, and global.

Referenced by parseQuery().

SearchMySQL::searchInternal ( term,
fulltext 
) [protected]

Definition at line 180 of file SearchMySQL.php.

References $query, $term, $total, SearchEngine\filter(), getCountQuery(), getQuery(), and global.

Referenced by searchText(), and searchTitle().

Perform a full text search query and return a result set.

Parameters:
string$termraw search term
Returns:
MySQLSearchResultSet

Reimplemented from SearchEngine.

Definition at line 166 of file SearchMySQL.php.

References $term, and searchInternal().

Perform a title-only search query and return a result set.

Parameters:
string$termraw search term
Returns:
MySQLSearchResultSet

Reimplemented from SearchEngine.

Definition at line 176 of file SearchMySQL.php.

References $term, and searchInternal().

SearchMySQL::stripForSearchCallback ( matches) [protected]

Armor a case-folded UTF-8 string to get through MySQL's fulltext search without being mucked up by funny charset settings or anything else of the sort.

Returns:
string

Definition at line 437 of file SearchMySQL.php.

References $matches.

SearchMySQL::supports ( feature)
Since:
1.18
Parameters:
$featureString
Returns:
Boolean

Reimplemented from SearchEngine.

Definition at line 213 of file SearchMySQL.php.

SearchMySQL::update ( id,
title,
text 
)

Create or update the search index record for the given page.

Title and text should be pre-processed.

Parameters:
$idInteger
$titleString
$textString

Reimplemented from SearchEngine.

Definition at line 343 of file SearchMySQL.php.

References $title, array(), normalizeText(), and wfGetDB().

SearchMySQL::updateTitle ( id,
title 
)

Update a search index record's title only.

Title should be pre-processed.

Parameters:
$idInteger
$titleString

Reimplemented from SearchEngine.

Definition at line 361 of file SearchMySQL.php.

References $title, array(), normalizeText(), and wfGetDB().


Member Data Documentation

SearchMySQL::$mMinSearchLength [static]

Definition at line 33 of file SearchMySQL.php.

Referenced by minSearchLength().

SearchMySQL::$strictMatching = true

Definition at line 32 of file SearchMySQL.php.


The documentation for this class was generated from the following file: