36 private static $BACKEND_NULL_PARAM =
'database-backed';
65 if ( $isScrollable ) {
73 $searchConfig = MediaWikiServices::getInstance()->getSearchEngineConfig();
74 $alternatives = $searchConfig->getSearchTypes();
75 if ( count( $alternatives ) > 1 ) {
76 if ( $alternatives[0] ===
null ) {
77 $alternatives[0] = self::$BACKEND_NULL_PARAM;
79 $this->allowedParams[
'backend'] = [
104 $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
106 foreach ( $configs as $paramName => $paramConfig ) {
107 $profiles = $searchEngine->getProfiles( $paramConfig[
'profile-type'],
115 $defaultProfile =
null;
116 foreach ( $profiles as $profile ) {
117 $types[] = $profile[
'name'];
118 if ( isset( $profile[
'desc-message'] ) ) {
119 $helpMessages[$profile[
'name']] = $profile[
'desc-message'];
121 if ( !empty( $profile[
'default'] ) ) {
122 $defaultProfile = $profile[
'name'];
154 if (
$type === self::$BACKEND_NULL_PARAM ) {
157 $searchEngine = MediaWikiServices::getInstance()->getSearchEngineFactory()->create(
$type );
159 $searchEngine->setNamespaces(
$params[
'namespace'] );
161 if ( isset(
$params[
'offset'] ) ) {
169 $searchEngine->setLimitOffset( $limit, $offset );
173 foreach ( $configs as $paramName => $paramConfig ) {
174 if ( isset(
$params[$paramName] ) ) {
175 $searchEngine->setFeatureData(
176 $paramConfig[
'profile-type'],
182 $searchEngine = MediaWikiServices::getInstance()->newSearchEngine();
184 return $searchEngine;
buildSearchEngine(array $params=null)
Build the search engine to use.
buildCommonApiParams( $isScrollable=true)
The set of api parameters that are shared between api calls that call the SearchEngine.
buildProfileApiParam()
Build the profile api param definitions.
const PARAM_REQUIRED
(boolean) Is the parameter required?
const PARAM_MAX2
(integer) Max value allowed for the parameter for users with the apihighlimits right,...
const PARAM_MAX
(integer) Max value allowed for the parameter, for PARAM_TYPE 'integer' and 'limit'.
const PARAM_TYPE
(string|string[]) Either an array of allowed value strings, or a string type as described below.
const PARAM_DFLT
(null|boolean|integer|string) Default value of the parameter.
const PARAM_HELP_MSG_PER_VALUE
((string|array|Message)[]) When PARAM_TYPE is an array, this is an array mapping those values to $msg...
const PARAM_MIN
(integer) Lowest value allowed for the parameter, for PARAM_TYPE 'integer' and 'limit'.
const LIMIT_BIG1
Fast query, standard limit.
const PARAM_HELP_MSG
(string|array|Message) Specify an alternative i18n documentation message for this parameter.
const LIMIT_BIG2
Fast query, apihighlimits limit.
const PARAM_ISMULTI
(boolean) Accept multiple pipe-separated values for this parameter (e.g.
trait SearchApi
Traits for API components that use a SearchEngine.