MediaWiki  1.23.15
SearchMySQL Class Reference

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

Inheritance diagram for SearchMySQL:
Collaboration diagram for SearchMySQL:

Public Member Functions

 delete ( $id, $title)
 Delete an indexed page Title should be pre-processed. More...
 
 getCountQuery ( $filteredTerm, $fulltext)
 
 getIndexField ( $fulltext)
 Picks which field to index on, depending on what type of query. More...
 
 getQuery ( $filteredTerm, $fulltext)
 Construct the SQL query to do the search. More...
 
 normalizeText ( $string)
 Converts some characters for MySQL's indexing to grok it correctly, and pads short words to overcome limitations. More...
 
 parseQuery ( $filteredText, $fulltext)
 Parse the user's query and transform it into an SQL fragment which will become part of a WHERE clause. More...
 
 queryMain (&$query, $filteredTerm, $fulltext)
 Get the base part of the search query. More...
 
 queryNamespaces (&$query)
 Add namespace conditions. More...
 
 regexTerm ( $string, $wildcard)
 
 searchText ( $term)
 Perform a full text search query and return a result set. More...
 
 searchTitle ( $term)
 Perform a title-only search query and return a result set. More...
 
 supports ( $feature)
 
 update ( $id, $title, $text)
 Create or update the search index record for the given page. More...
 
 updateTitle ( $id, $title)
 Update a search index record's title only. More...
 
- Public Member Functions inherited from SearchDatabase
 __construct (DatabaseBase $db=null)
 Constructor. More...
 
- Public Member Functions inherited from SearchEngine
 filter ( $text)
 Return a 'cleaned up' search string. More...
 
 getTextFromContent (Title $t, Content $c=null)
 Get the raw text for updating the index from a content object Nicer search backends could possibly do something cooler than just returning raw text. More...
 
 replacePrefixes ( $query)
 Parse some common prefixes: all (search everything) or namespace names. More...
 
 setFeatureData ( $feature, $data)
 Way to pass custom data for engines. More...
 
 setLimitOffset ( $limit, $offset=0)
 Set the maximum number of results to return and how many to skip before returning the first. More...
 
 setNamespaces ( $namespaces)
 Set which namespaces the search should include. More...
 
 setShowSuggestion ( $showSuggestion)
 Set whether the searcher should try to build a suggestion. More...
 
 textAlreadyUpdatedForIndex ()
 If an implementation of SearchEngine handles all of its own text processing in getTextFromContent() and doesn't require SearchUpdate::updateText()'s rather silly handling, it should return true here instead. More...
 
 transformSearchTerm ( $term)
 Transform search term in cases when parts of the query came as different GET params (when supported) e.g. More...
 

Static Public Member Functions

static legalSearchChars ()
 
- Static Public Member Functions inherited from SearchEngine
static create ( $type=null)
 Load up the appropriate search engine class for the currently active database backend, and return a configured instance. More...
 
static defaultNamespaces ()
 An array of namespaces indexes to be searched by default. More...
 
static getNearMatch ( $searchterm)
 If an exact title match can be found, or a very slightly close match, return the title. More...
 
static getNearMatchResultSet ( $searchterm)
 Do a near match (see SearchEngine::getNearMatch) and wrap it into a SearchResultSet. More...
 
static getOpenSearchTemplate ()
 Get OpenSearch suggestion template. More...
 
static getSearchTypes ()
 Return the search engines we support. More...
 
static helpNamespaces ()
 Return the help namespaces to be shown on Special:Search. More...
 
static namespacesAsText ( $namespaces)
 Get a list of namespace names useful for showing in tooltips and preferences. More...
 
static searchableNamespaces ()
 Make a list of searchable namespaces and their canonical names. More...
 
static userHighlightPrefs ()
 Find snippet highlight settings for all users. More...
 
static userNamespaces ( $user)
 Extract default namespaces to search from the given user's settings, returning a list of index numbers. More...
 

Public Attributes

 $strictMatching = true
 
- Public Attributes inherited from SearchEngine
 $limit = 10
 
 $namespaces = array( NS_MAIN )
 
 $offset = 0
 
 $prefix = ''
 
 $searchTerms = array()
 

Static Public Attributes

static $mMinSearchLength
 

Protected Member Functions

 limitResult (&$query)
 Add limit options. More...
 
 minSearchLength ()
 Check MySQL server's ft_min_word_len setting so we know if we need to pad short words... More...
 
 queryFeatures (&$query)
 Add special conditions. More...
 
 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. More...
 

Additional Inherited Members

- Protected Attributes inherited from SearchDatabase
DatabaseBase $db
 Slave database for reading from for results. More...
 
- Protected Attributes inherited from SearchEngine
Array $features = array()
 Feature values *. More...
 
 $showSuggestion = true
 

Detailed Description

Search engine hook for MySQL 4+.

Definition at line 31 of file SearchMySQL.php.

Member Function Documentation

◆ delete()

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 368 of file SearchMySQL.php.

References array(), DB_MASTER, and wfGetDB().

◆ getCountQuery()

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

Definition at line 308 of file SearchMySQL.php.

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

Referenced by searchInternal().

◆ getIndexField()

SearchMySQL::getIndexField (   $fulltext)

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

Parameters
$fulltextBoolean
Returns
String

Definition at line 281 of file SearchMySQL.php.

Referenced by parseQuery().

◆ getQuery()

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 259 of file SearchMySQL.php.

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

Referenced by searchInternal().

◆ legalSearchChars()

static SearchMySQL::legalSearchChars ( )
static

Reimplemented from SearchEngine.

Definition at line 148 of file SearchMySQL.php.

◆ limitResult()

SearchMySQL::limitResult ( $query)
protected

Add limit options.

Parameters
$queryArray
Since
1.18

Definition at line 246 of file SearchMySQL.php.

References SearchEngine\$limit, SearchEngine\$offset, and $query.

Referenced by getQuery().

◆ minSearchLength()

SearchMySQL::minSearchLength ( )
protected

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

Returns
int

Definition at line 437 of file SearchMySQL.php.

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

Referenced by normalizeText().

◆ normalizeText()

SearchMySQL::normalizeText (   $string)

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 379 of file SearchMySQL.php.

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

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

◆ parseQuery()

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 44 of file SearchMySQL.php.

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

Referenced by getCountQuery(), and queryMain().

◆ queryFeatures()

SearchMySQL::queryFeatures ( $query)
protected

Add special conditions.

Parameters
$queryArray
Since
1.18

Definition at line 219 of file SearchMySQL.php.

References $query, $value, and as.

Referenced by getCountQuery(), and getQuery().

◆ queryMain()

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 293 of file SearchMySQL.php.

References $query, and parseQuery().

Referenced by getQuery().

◆ queryNamespaces()

SearchMySQL::queryNamespaces ( $query)

Add namespace conditions.

Parameters
$queryArray
Since
1.18 (changed)

Definition at line 232 of file SearchMySQL.php.

References SearchEngine\$namespaces, $query, and namespaces.

Referenced by getCountQuery(), and getQuery().

◆ regexTerm()

SearchMySQL::regexTerm (   $string,
  $wildcard 
)

Definition at line 129 of file SearchMySQL.php.

References $wgContLang, and global.

Referenced by parseQuery().

◆ searchInternal()

SearchMySQL::searchInternal (   $term,
  $fulltext 
)
protected

Definition at line 172 of file SearchMySQL.php.

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

Referenced by searchText(), and searchTitle().

◆ searchText()

SearchMySQL::searchText (   $term)

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

Parameters
string$termraw search term
Returns
MySQLSearchResultSet

Reimplemented from SearchEngine.

Definition at line 158 of file SearchMySQL.php.

References $term, and searchInternal().

◆ searchTitle()

SearchMySQL::searchTitle (   $term)

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

Parameters
string$termraw search term
Returns
MySQLSearchResultSet

Reimplemented from SearchEngine.

Definition at line 168 of file SearchMySQL.php.

References $term, and searchInternal().

◆ stripForSearchCallback()

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 427 of file SearchMySQL.php.

References $matches.

◆ supports()

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

Reimplemented from SearchEngine.

Definition at line 205 of file SearchMySQL.php.

◆ update()

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 333 of file SearchMySQL.php.

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

◆ updateTitle()

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 351 of file SearchMySQL.php.

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

Member Data Documentation

◆ $mMinSearchLength

SearchMySQL::$mMinSearchLength
static

Definition at line 33 of file SearchMySQL.php.

Referenced by minSearchLength().

◆ $strictMatching

SearchMySQL::$strictMatching = true

Definition at line 32 of file SearchMySQL.php.


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