30 private $searchEngineConfig =
null;
40 if ( !$this->searchEngineConfig || !$this->searchEngineFactory ) {
42 'SearchApi requires both a SearchEngineConfig and SearchEngineFactory to be set'
84 if ( $isScrollable ) {
92 $alternatives = $this->searchEngineConfig->getSearchTypes();
93 if ( count( $alternatives ) > 1 ) {
94 if ( $alternatives[0] ===
null ) {
97 $params[
'backend'] = [
125 $searchEngine = $this->searchEngineFactory->create();
127 foreach ( $configs as $paramName => $paramConfig ) {
128 $profiles = $searchEngine->getProfiles(
129 $paramConfig[
'profile-type'],
138 $defaultProfile =
null;
139 foreach ( $profiles as $profile ) {
140 $types[] = $profile[
'name'];
141 if ( isset( $profile[
'desc-message'] ) ) {
142 $helpMessages[$profile[
'name']] = $profile[
'desc-message'];
145 if ( !empty( $profile[
'default'] ) ) {
146 $defaultProfile = $profile[
'name'];
150 $params[$paramName] = [
177 if ( $params ==
null ) {
178 return $this->searchEngineFactory->create();
181 $type = $params[
'backend'] ??
null;
185 $searchEngine = $this->searchEngineFactory->create(
$type );
186 $searchEngine->setNamespaces( $params[
'namespace'] );
187 $searchEngine->setLimitOffset( $params[
'limit'], $params[
'offset'] ?? 0 );
191 foreach ( $configs as $paramName => $paramConfig ) {
192 if ( isset( $params[$paramName] ) ) {
193 $searchEngine->setFeatureData(
194 $paramConfig[
'profile-type'],
199 return $searchEngine;
static $BACKEND_NULL_PARAM
When $wgSearchType is null, $wgSearchAlternatives[0] is null.
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.
SearchEngineFactory null $searchEngineFactory
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 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.
trait SearchApi
Traits for API components that use a SearchEngine.