MediaWiki REL1_32
SearchDatabase.php
Go to the documentation of this file.
1<?php
25
31abstract class SearchDatabase extends SearchEngine {
35 protected $db;
36
40 public function __construct( IDatabase $db = null ) {
41 if ( $db ) {
42 $this->db = $db;
43 } else {
44 $this->db = wfGetDB( DB_REPLICA );
45 }
46 }
47
52 final public function doSearchText( $term ) {
53 return $this->doSearchTextInDB( $this->extractNamespacePrefix( $term ) );
54 }
55
62 abstract protected function doSearchTextInDB( $term );
63
68 final public function doSearchTitle( $term ) {
69 return $this->doSearchTitleInDB( $this->extractNamespacePrefix( $term ) );
70 }
71
78 abstract protected function doSearchTitleInDB( $term );
79
86 protected function filter( $text ) {
87 // List of chars allowed in the search query.
88 // This must include chars used in the search syntax.
89 // Usually " (phrase) or * (wildcards) if supported by the engine
90 $lc = $this->legalSearchChars( self::CHARS_ALL );
91 return trim( preg_replace( "/[^{$lc}]/", " ", $text ) );
92 }
93
100 final protected function extractNamespacePrefix( $term ) {
101 $queryAndNs = self::parseNamespacePrefixes( $term );
102 if ( $queryAndNs === false ) {
103 return $term;
104 }
105 $this->namespaces = $queryAndNs[1];
106 return $queryAndNs[0];
107 }
108}
to move a page</td >< td > &*You are moving the page across namespaces
wfGetDB( $db, $groups=[], $wiki=false)
Get a Database object.
Base search engine base class for database-backed searches.
doSearchTextInDB( $term)
Perform a full text search query and return a result set.
__construct(IDatabase $db=null)
filter( $text)
Return a 'cleaned up' search string.
doSearchTitleInDB( $term)
Perform a title-only search query and return a result set.
extractNamespacePrefix( $term)
Extract the optional namespace prefix and set self::namespaces accordingly and return the query strin...
IDatabase $db
Slave database for reading from for results.
Contain a class for special pages.
static parseNamespacePrefixes( $query, $withAllKeyword=true, $withPrefixSearchExtractNamespaceHook=false)
Parse some common prefixes: all (search everything) or namespace names.
static legalSearchChars( $type=self::CHARS_ALL)
Get chars legal for search NOTE: usage as static is deprecated and preserved only as BC measure.
For QUnit the mediawiki tests qunit testrunner dependency will be added to any module whereas SearchGetNearMatch runs after $term
Definition hooks.txt:2926
Basic database interface for live and lazy-loaded relation database handles.
Definition IDatabase.php:38
const DB_REPLICA
Definition defines.php:25