* @ingroup Search
*/
+use Wikimedia\Rdbms\IDatabase;
+
/**
* Base search engine base class for database-backed searches
* @ingroup Search
*/
class SearchDatabase extends SearchEngine {
/**
- * @var DatabaseBase Slave database for reading from for results
+ * @var IDatabase Slave database for reading from for results
*/
protected $db;
/**
- * Constructor
- * @param DatabaseBase $db The database to search from
+ * @param IDatabase $db The database to search from
*/
- public function __construct( DatabaseBase $db = null ) {
+ public function __construct( IDatabase $db = null ) {
if ( $db ) {
$this->db = $db;
} else {
- $this->db = wfGetDB( DB_SLAVE );
+ $this->db = wfGetDB( DB_REPLICA );
}
}
* @return string
*/
protected function filter( $text ) {
- $lc = $this->legalSearchChars();
+ // List of chars allowed in the search query.
+ // This must include chars used in the search syntax.
+ // Usually " (phrase) or * (wildcards) if supported by the engine
+ $lc = $this->legalSearchChars( self::CHARS_ALL );
return trim( preg_replace( "/[^{$lc}]/", " ", $text ) );
}
}