/** @const string profile type for query independent ranking features */
const FT_QUERY_INDEP_PROFILE_TYPE = 'fulltextQueryIndepProfile';
+ /** @const int flag for legalSearchChars: includes all chars allowed in a search query */
+ const CHARS_ALL = 1;
+
+ /** @const int flag for legalSearchChars: includes all chars allowed in a search term */
+ const CHARS_NO_SYNTAX = 2;
+
/**
* Perform a full text search query and return a result set.
* If full text searches are not supported or disabled, return null.
}
/**
- * Get chars legal for search.
+ * Get chars legal for search
* NOTE: usage as static is deprecated and preserved only as BC measure
+ * @param int $type type of search chars (see self::CHARS_ALL
+ * and self::CHARS_NO_SYNTAX). Defaults to CHARS_ALL
* @return string
*/
- public static function legalSearchChars() {
+ public static function legalSearchChars( $type = self::CHARS_ALL ) {
return "A-Za-z_'.0-9\\x80-\\xFF\\-";
}
if ( $namespaces ) {
// Filter namespaces to only keep valid ones
$validNs = $this->searchableNamespaces();
- $namespaces = array_filter( $namespaces, function( $ns ) use( $validNs ) {
+ $namespaces = array_filter( $namespaces, function ( $ns ) use( $validNs ) {
return $ns < 0 || isset( $validNs[$ns] );
} );
} else {
$title = Title::newFromText( $search . 'Dummy' );
if ( $title && $title->getText() == 'Dummy'
&& $title->getNamespace() != NS_MAIN
- && !$title->isExternal() )
- {
+ && !$title->isExternal()
+ ) {
$ns = [ $title->getNamespace() ];
$search = '';
} else {
}
}
- $ns = array_map( function( $space ) {
+ $ns = array_map( function ( $space ) {
return $space == NS_MEDIA ? NS_FILE : $space;
}, $ns );
* @return Title[]
*/
public function extractTitles( SearchSuggestionSet $completionResults ) {
- return $completionResults->map( function( SearchSuggestion $sugg ) {
+ return $completionResults->map( function ( SearchSuggestion $sugg ) {
return $sugg->getSuggestedTitle();
} );
}
protected function processCompletionResults( $search, SearchSuggestionSet $suggestions ) {
$search = trim( $search );
// preload the titles with LinkBatch
- $titles = $suggestions->map( function( SearchSuggestion $sugg ) {
+ $titles = $suggestions->map( function ( SearchSuggestion $sugg ) {
return $sugg->getSuggestedTitle();
} );
$lb = new LinkBatch( $titles );
$lb->setCaller( __METHOD__ );
$lb->execute();
- $results = $suggestions->map( function( SearchSuggestion $sugg ) {
+ $results = $suggestions->map( function ( SearchSuggestion $sugg ) {
return $sugg->getSuggestedTitle()->getPrefixedText();
} );