SearchEngine::create( $params['backend'] ) : SearchEngine::create();
$search->setLimitOffset( $limit + 1, $params['offset'] );
$search->setNamespaces( $params['namespace'] );
+ $search->setFeatureData( 'rewrite', (bool)$params['enablerewrites'] );
$query = $search->transformSearchTerm( $query );
$query = $search->replacePrefixes( $query );
$apiResult->addValue( array( 'query', 'searchinfo' ),
'suggestionsnippet', $matches->getSuggestionSnippet() );
}
+ if ( isset( $searchInfo['rewrittenquery'] ) && $matches->hasRewrittenQuery() ) {
+ $apiResult->addValue( array( 'query', 'searchinfo' ),
+ 'rewrittenquery', $matches->getQueryAfterRewrite() );
+ $apiResult->addValue( array( 'query', 'searchinfo' ),
+ 'rewrittenquerysnippet', $matches->getQueryAfterRewriteSnippet() );
+ }
}
// Add the search results to the result
), 'p' );
}
} else {
+ $resultPageSet->setRedirectMergePolicy( function ( $current, $new ) {
+ if ( !isset( $current['index'] ) || $new['index'] < $current['index'] ) {
+ $current['index'] = $new['index'];
+ }
+ return $current;
+ } );
$resultPageSet->populateFromTitles( $titles );
$offset = $params['offset'] + 1;
foreach ( $titles as $index => $title ) {
ApiBase::PARAM_ISMULTI => true,
),
'what' => array(
- ApiBase::PARAM_DFLT => null,
ApiBase::PARAM_TYPE => array(
'title',
'text',
)
),
'info' => array(
- ApiBase::PARAM_DFLT => 'totalhits|suggestion',
+ ApiBase::PARAM_DFLT => 'totalhits|suggestion|rewrittenquery',
ApiBase::PARAM_TYPE => array(
'totalhits',
'suggestion',
+ 'rewrittenquery',
),
ApiBase::PARAM_ISMULTI => true,
),
ApiBase::PARAM_MAX2 => ApiBase::LIMIT_SML2
),
'interwiki' => false,
+ 'enablerewrites' => false,
);
$alternatives = SearchEngine::getSearchTypes();