MediaWiki REL1_35
|
Search engine hook for MySQL. More...
Public Member Functions | |
delete ( $id, $title) | |
Delete an indexed page Title should be pre-processed. | |
legalSearchChars ( $type=self::CHARS_ALL) | |
Get chars legal for search. | |
normalizeText ( $string) | |
Converts some characters for MySQL's indexing to grok it correctly, and pads short words to overcome limitations. | |
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. | |
Public Member Functions inherited from SearchDatabase | |
__construct (ILoadBalancer $lb) | |
doSearchText ( $term) | |
doSearchTitle ( $term) | |
Public Member Functions inherited from SearchEngine | |
augmentSearchResults (ISearchResultSet $resultSet) | |
Augment search results with extra data. | |
completionSearch ( $search) | |
Perform a completion search. | |
completionSearchWithVariants ( $search) | |
Perform a completion search with variants. | |
defaultPrefixSearch ( $search) | |
Simple prefix search for subpages. | |
extractTitles (SearchSuggestionSet $completionResults) | |
Extract titles from completion results. | |
getFeatureData ( $feature) | |
Way to retrieve custom data set by setFeatureData or by the engine itself. | |
getNearMatcher (Config $config) | |
Get service class to finding near matches. | |
getProfiles ( $profileType, User $user=null) | |
Get a list of supported profiles. | |
getSearchIndexFields () | |
Get fields for search index. | |
getSort () | |
Get the sort direction of the search results. | |
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. | |
getValidSorts () | |
Get the valid sort directions. | |
makeSearchFieldMapping ( $name, $type) | |
Create a search field definition. | |
replacePrefixes ( $query) | |
Parse some common prefixes: all (search everything) or namespace names and set the list of namespaces of this class accordingly. | |
searchArchiveTitle ( $term) | |
Perform a title search in the article archive. | |
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. | |
setFeatureData ( $feature, $data) | |
Way to pass custom data for engines. | |
setHookContainer (HookContainer $hookContainer) | |
setLimitOffset ( $limit, $offset=0) | |
Set the maximum number of results to return and how many to skip before returning the first. | |
setNamespaces ( $namespaces) | |
Set which namespaces the search should include. | |
setShowSuggestion ( $showSuggestion) | |
Set whether the searcher should try to build a suggestion. | |
setSort ( $sort) | |
Set the sort direction of the search results. | |
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. | |
Protected Member Functions | |
doSearchTextInDB ( $term) | |
Perform a full text search query and return a result set. | |
doSearchTitleInDB ( $term) | |
Perform a title-only search query and return a result set. | |
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 Member Functions inherited from SearchDatabase | |
extractNamespacePrefix ( $term) | |
Extract the optional namespace prefix and set self::namespaces accordingly and return the query string. | |
filter ( $text) | |
Return a 'cleaned up' search string. | |
Protected Member Functions inherited from SearchEngine | |
completionSearchBackend ( $search) | |
Perform a completion search. | |
completionSearchBackendOverfetch ( $search) | |
Perform an overfetch of completion search results. | |
doSearchArchiveTitle ( $term) | |
Perform a title search in the article archive. | |
getHookContainer () | |
Get a HookContainer, for running extension hooks or for hook metadata. | |
getHookRunner () | |
Get a HookRunner for running core hooks. | |
normalizeNamespaces ( $search) | |
Makes search simple string if it was namespaced. | |
processCompletionResults ( $search, SearchSuggestionSet $suggestions) | |
Process completion search results. | |
simplePrefixSearch ( $search) | |
Call out to simple search backend. | |
Protected Attributes | |
$strictMatching = true | |
Protected Attributes inherited from SearchDatabase | |
IDatabase | $db |
(backwards compatibility) | |
ILoadBalancer | $lb |
string[] | $searchTerms = [] |
search terms | |
Protected Attributes inherited from SearchEngine | |
array | $features = [] |
Feature values. | |
int | $limit = 10 |
int | $offset = 0 |
string[] | $searchTerms = [] |
bool | $showSuggestion = true |
const | CHARS_ALL = 1 |
Integer flag for legalSearchChars: includes all chars allowed in a search query. | |
const | CHARS_NO_SYNTAX = 2 |
Integer flag for legalSearchChars: includes all chars allowed in a search term. | |
Private Member Functions | |
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. | |
parseQuery ( $filteredText, $fulltext) | |
Parse the user's query and transform it into two SQL fragments: a WHERE condition and an ORDER BY expression. | |
queryMain (&$query, $filteredTerm, $fulltext) | |
Get the base part of the search query. | |
queryNamespaces (&$query) | |
Add namespace conditions. | |
regexTerm ( $string, $wildcard) | |
Static Private Attributes | |
static | $mMinSearchLength |
Additional Inherited Members | |
Static Public Member Functions inherited from SearchEngine | |
static | parseNamespacePrefixes ( $query, $withAllKeyword=true, $withPrefixSearchExtractNamespaceHook=false) |
Parse some common prefixes: all (search everything) or namespace names. | |
static | userHighlightPrefs () |
Find snippet highlight settings for all users. | |
Public Attributes inherited from SearchEngine | |
int[] null | $namespaces = [ NS_MAIN ] |
string | $prefix = '' |
const | COMPLETION_PROFILE_TYPE = 'completionSearchProfile' |
Profile type for completionSearch. | |
const | DEFAULT_SORT = 'relevance' |
const | FT_QUERY_INDEP_PROFILE_TYPE = 'fulltextQueryIndepProfile' |
Profile type for query independent ranking features. | |
Static Protected Member Functions inherited from SearchEngine | |
static | defaultNearMatcher () |
Get near matcher for default SearchEngine. | |
Search engine hook for MySQL.
Definition at line 33 of file SearchMySQL.php.
SearchMySQL::delete | ( | $id, | |
$title | |||
) |
Delete an indexed page Title should be pre-processed.
Reimplemented from SearchEngine.
Definition at line 381 of file SearchMySQL.php.
References DB_MASTER.
|
protected |
Perform a full text search query and return a result set.
string | $term | Raw search term |
Reimplemented from SearchDatabase.
Definition at line 168 of file SearchMySQL.php.
References searchInternal().
|
protected |
Perform a title-only search query and return a result set.
string | $term | Raw search term |
Reimplemented from SearchDatabase.
Definition at line 178 of file SearchMySQL.php.
References searchInternal().
|
private |
string | $filteredTerm | |
bool | $fulltext |
Definition at line 319 of file SearchMySQL.php.
References parseQuery(), queryFeatures(), and queryNamespaces().
Referenced by searchInternal().
|
private |
Picks which field to index on, depending on what type of query.
bool | $fulltext |
Definition at line 289 of file SearchMySQL.php.
Referenced by parseQuery().
|
private |
Construct the SQL query to do the search.
The guts shoulds be constructed in queryMain()
string | $filteredTerm | |
bool | $fulltext |
Definition at line 267 of file SearchMySQL.php.
References limitResult(), queryFeatures(), queryMain(), and queryNamespaces().
Referenced by searchInternal().
SearchMySQL::legalSearchChars | ( | $type = self::CHARS_ALL | ) |
Get chars legal for search.
int | $type | type of search chars (see self::CHARS_ALL and self::CHARS_NO_SYNTAX). Defaults to CHARS_ALL |
Reimplemented from SearchEngine.
Definition at line 153 of file SearchMySQL.php.
References $type.
Referenced by parseQuery().
|
protected |
Add limit options.
array | &$query |
Definition at line 254 of file SearchMySQL.php.
References SearchEngine\$limit, and SearchEngine\$offset.
Referenced by getQuery().
|
protected |
Check MySQL server's ft_min_word_len setting so we know if we need to pad short words...
Definition at line 444 of file SearchMySQL.php.
References $dbr, $mMinSearchLength, and DB_REPLICA.
Referenced by normalizeText().
SearchMySQL::normalizeText | ( | $string | ) |
Converts some characters for MySQL's indexing to grok it correctly, and pads short words to overcome limitations.
string | $string |
Reimplemented from SearchEngine.
Definition at line 392 of file SearchMySQL.php.
References minSearchLength().
Referenced by parseQuery(), update(), and updateTitle().
|
private |
Parse the user's query and transform it into two SQL fragments: a WHERE condition and an ORDER BY expression.
string | $filteredText | |
string | $fulltext |
Definition at line 47 of file SearchMySQL.php.
References $dbr, DB_REPLICA, getIndexField(), legalSearchChars(), normalizeText(), regexTerm(), and wfDebug().
Referenced by getCountQuery(), and queryMain().
|
protected |
Add special conditions.
array | &$query |
Definition at line 226 of file SearchMySQL.php.
References $dbr, and DB_REPLICA.
Referenced by getCountQuery(), and getQuery().
|
private |
Get the base part of the search query.
array | &$query | Search query array |
string | $filteredTerm | |
bool | $fulltext |
Definition at line 301 of file SearchMySQL.php.
References parseQuery().
Referenced by getQuery().
|
private |
Add namespace conditions.
array | &$query |
Definition at line 240 of file SearchMySQL.php.
References SearchEngine\$namespaces.
Referenced by getCountQuery(), and getQuery().
|
private |
Definition at line 136 of file SearchMySQL.php.
Referenced by parseQuery().
|
protected |
Definition at line 182 of file SearchMySQL.php.
References $dbr, DB_REPLICA, SearchDatabase\filter(), getCountQuery(), and getQuery().
Referenced by doSearchTextInDB(), and doSearchTitleInDB().
|
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.
array | $matches |
Definition at line 434 of file SearchMySQL.php.
References $matches.
SearchMySQL::supports | ( | $feature | ) |
string | $feature |
Reimplemented from SearchEngine.
Definition at line 212 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.
int | $id | |
string | $title | |
string | $text |
Reimplemented from SearchEngine.
Definition at line 344 of file SearchMySQL.php.
References $title, DB_MASTER, and normalizeText().
SearchMySQL::updateTitle | ( | $id, | |
$title | |||
) |
Update a search index record's title only.
Title should be pre-processed.
int | $id | |
string | $title |
Reimplemented from SearchEngine.
Definition at line 365 of file SearchMySQL.php.
References $title, DB_MASTER, and normalizeText().
|
staticprivate |
Definition at line 36 of file SearchMySQL.php.
Referenced by minSearchLength().
|
protected |
Definition at line 34 of file SearchMySQL.php.