MediaWiki  master
PrefixSearch Class Reference

Handles searching prefixes of titles and finding any page names that match. More...

Inheritance diagram for PrefixSearch:

Public Member Functions

 defaultSearchBackend ( $namespaces, $search, $limit, $offset)
 Unless overridden by PrefixSearchBackend hook... More...
 
 search ( $search, $limit, $namespaces=[], $offset=0)
 Do a prefix search of titles and return a list of matching page names. More...
 
 searchWithVariants ( $search, $limit, array $namespaces, $offset=0)
 Do a prefix search for all possible variants of the prefix. More...
 

Protected Member Functions

 searchBackend ( $namespaces, $search, $limit, $offset)
 Do a prefix search of titles and return a list of matching page names. More...
 
 specialSearch ( $search, $limit, $offset)
 Prefix search special-case for Special: namespace. More...
 
 strings (array $strings)
 When implemented in a descendant class, receives an array of titles as strings and returns either an unmodified array or an array of Title objects corresponding to strings received. More...
 
 titles (array $titles)
 When implemented in a descendant class, receives an array of Title objects and returns either an unmodified array or an array of strings corresponding to titles passed to it. More...
 
 validateNamespaces ( $namespaces)
 Validate an array of numerical namespace indexes. More...
 

Detailed Description

Handles searching prefixes of titles and finding any page names that match.

Used largely by the OpenSearch implementation.

Deprecated:
Since 1.27, Use SearchEngine::defaultPrefixSearch or SearchEngine::completionSearch
Stability: stable
to extend

Definition at line 36 of file PrefixSearch.php.

Member Function Documentation

◆ defaultSearchBackend()

PrefixSearch::defaultSearchBackend (   $namespaces,
  $search,
  $limit,
  $offset 
)

Unless overridden by PrefixSearchBackend hook...

This is case-sensitive (First character may be automatically capitalized by Title::secureAndSpit() later on depending on $wgCapitalLinks)

Parameters
int[] | null$namespacesNamespaces to search in
string$searchTerm
int$limitMax number of items to return
int$offsetNumber of items to skip
Returns
Title[]

Definition at line 241 of file PrefixSearch.php.

References $dbr, $res, $title, DB_REPLICA, MediaWikiTitleCodec\getTitleInvalidRegex(), LIST_AND, LIST_OR, NS_MAIN, NS_SPECIAL, specialSearch(), and wfGetDB().

Referenced by searchBackend(), and SearchEngine\simplePrefixSearch().

◆ search()

PrefixSearch::search (   $search,
  $limit,
  $namespaces = [],
  $offset = 0 
)

Do a prefix search of titles and return a list of matching page names.

Parameters
string$search
int$limit
array$namespacesUsed if query is not explicitly prefixed
int$offsetHow many results to offset from the beginning
Returns
(Title|string)[]

Definition at line 46 of file PrefixSearch.php.

References SearchEngine\parseNamespacePrefixes(), and searchBackend().

Referenced by searchWithVariants().

◆ searchBackend()

PrefixSearch::searchBackend (   $namespaces,
  $search,
  $limit,
  $offset 
)
protected

Do a prefix search of titles and return a list of matching page names.

Parameters
int[]$namespaces
string$search
int$limit
int$offsetHow many results to offset from the beginning
Returns
(Title|string)[]

Definition at line 120 of file PrefixSearch.php.

References defaultSearchBackend(), NS_FILE, NS_MEDIA, NS_SPECIAL, specialSearch(), strings(), and titles().

Referenced by search().

◆ searchWithVariants()

PrefixSearch::searchWithVariants (   $search,
  $limit,
array  $namespaces,
  $offset = 0 
)

Do a prefix search for all possible variants of the prefix.

Parameters
string$search
int$limit
array$namespaces
int$offsetHow many results to offset from the beginning
Returns
(Title|string)[]

Definition at line 69 of file PrefixSearch.php.

References search().

◆ specialSearch()

PrefixSearch::specialSearch (   $search,
  $limit,
  $offset 
)
protected

Prefix search special-case for Special: namespace.

Parameters
string$searchTerm
int$limitMax number of items to return
int$offsetNumber of items to offset
Returns
array

Definition at line 159 of file PrefixSearch.php.

References $keys, $matches, and NS_SPECIAL.

Referenced by defaultSearchBackend(), and searchBackend().

◆ strings()

PrefixSearch::strings ( array  $strings)
abstractprotected

When implemented in a descendant class, receives an array of titles as strings and returns either an unmodified array or an array of Title objects corresponding to strings received.

Parameters
string[]$strings
Returns
(Title|string)[]

Reimplemented in TitlePrefixSearch, and StringPrefixSearch.

Referenced by searchBackend().

◆ titles()

PrefixSearch::titles ( array  $titles)
abstractprotected

When implemented in a descendant class, receives an array of Title objects and returns either an unmodified array or an array of strings corresponding to titles passed to it.

Parameters
Title[]$titles
Returns
(Title|string)[]

Reimplemented in TitlePrefixSearch, and StringPrefixSearch.

Referenced by searchBackend().

◆ validateNamespaces()

PrefixSearch::validateNamespaces (   $namespaces)
protected

Validate an array of numerical namespace indexes.

Parameters
array$namespaces
Returns
array (default: contains only NS_MAIN)

Definition at line 303 of file PrefixSearch.php.

References NS_MAIN.


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