MediaWiki REL1_33
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
and that you know you can do these things To protect your we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the or if you modify it For if you distribute copies of such a whether gratis or for a you must give the recipients all the rights that you have You must make sure that receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two and(2) offer you this license which gives you legal permission to copy
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
Replica database from which to read 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.
whereas SearchGetNearMatch runs after $term
Definition hooks.txt:2889
Basic database interface for live and lazy-loaded relation database handles.
Definition IDatabase.php:38
const DB_REPLICA
Definition defines.php:25