MediaWiki  REL1_24
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

 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 ()

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.

Protected Attributes

 $strictMatching = true

Static Private Attributes

static $mMinSearchLength

Detailed Description

Search engine hook for MySQL 4+.

Definition at line 31 of file SearchMySQL.php.


Member Function Documentation

SearchMySQL::delete ( id,
title 
)

Delete an indexed page Title should be pre-processed.

Parameters:
int$idPage id that was deleted
string$titleTitle of page that was deleted

Reimplemented from SearchEngine.

Definition at line 370 of file SearchMySQL.php.

References array(), and wfGetDB().

SearchMySQL::getCountQuery ( filteredTerm,
fulltext 
)
Since:
1.18 (changed)
Parameters:
string$filteredTerm
bool$fulltext
Returns:
array

Definition at line 310 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:
bool$fulltext
Returns:
string

Definition at line 281 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:
string$filteredTerm
bool$fulltext
Returns:
array
Since:
1.18 (changed)

Definition at line 259 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 152 of file SearchMySQL.php.

Referenced by parseQuery().

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

Add limit options.

Parameters:
array$query
Since:
1.18

Definition at line 246 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 441 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.

Parameters:
string$string
Returns:
mixed|string

Reimplemented from SearchEngine.

Definition at line 382 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:
string$filteredText
string$fulltext
Returns:
string

Definition at line 45 of file SearchMySQL.php.

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

Referenced by getCountQuery(), and queryMain().

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

Add special conditions.

Parameters:
array$query
Since:
1.18

Definition at line 219 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:
array&$querySearch query array
string$filteredTerm
bool$fulltext
Since:
1.18 (changed)

Definition at line 293 of file SearchMySQL.php.

References $query, and parseQuery().

Referenced by getQuery().

Add namespace conditions.

Parameters:
array$query
Since:
1.18 (changed)

Definition at line 232 of file SearchMySQL.php.

References $query, and namespaces.

Referenced by getCountQuery(), and getQuery().

SearchMySQL::regexTerm ( string,
wildcard 
)

Definition at line 133 of file SearchMySQL.php.

References $wgContLang, and global.

Referenced by parseQuery().

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

Definition at line 176 of file SearchMySQL.php.

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

Referenced by searchText(), and searchTitle().

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

Parameters:
string$termRaw search term
Returns:
SqlSearchResultSet

Reimplemented from SearchEngine.

Definition at line 162 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:
SqlSearchResultSet

Reimplemented from SearchEngine.

Definition at line 172 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.

Parameters:
array$matches
Returns:
string

Definition at line 431 of file SearchMySQL.php.

References $matches.

SearchMySQL::supports ( feature)
Since:
1.18
Parameters:
string$feature
Returns:
bool

Reimplemented from SearchEngine.

Definition at line 205 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:
int$id
string$title
string$text

Reimplemented from SearchEngine.

Definition at line 335 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:
int$id
string$title

Reimplemented from SearchEngine.

Definition at line 353 of file SearchMySQL.php.

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


Member Data Documentation

SearchMySQL::$mMinSearchLength [static, private]

Definition at line 34 of file SearchMySQL.php.

Referenced by minSearchLength().

SearchMySQL::$strictMatching = true [protected]

Definition at line 32 of file SearchMySQL.php.


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