Billinghurst wrote:
I am guessing that the search engine does not transclude pages before it undertakes it indexing function. Is someone able to confirm that for me?
Is there any fix that anyone can suggest, or even know where such an issue can be raised beyong Bugzilla? Would a fix lie in the search engine? Or does the fix lie in the transclusion process? Thanks.
Regards, Andrew
This change should fix it. It makes the search engine store the wikitext with the templates expanded, variables replaced, comments stripped... That operation should be fast, as it should be hitting the cache from having just rendered it.
Index: includes/Article.php =================================================================== --- includes/Article.php (revision 78601) +++ includes/Article.php (working copy) @@ -3622,7 +3622,7 @@ * @param $changed Boolean: Whether or not the content actually changed */ public function editUpdates( $text, $summary, $minoredit, $timestamp_of_pagechange, $newid, $changed = true ) { - global $wgDeferredUpdateList, $wgMessageCache, $wgUser, $wgEnableParserCache; + global $wgDeferredUpdateList, $wgMessageCache, $wgUser, $wgEnableParserCache, $wgParser;
wfProfileIn( __METHOD__ );
@@ -3674,6 +3674,6 @@
$u = new SiteStatsUpdate( 0, 1, $this->mGoodAdjustment, $this->mTotalAdjustment ); array_push( $wgDeferredUpdateList, $u ); - $u = new SearchUpdate( $id, $title, $text ); + $u = new SearchUpdate( $id, $title, $wgParser->preprocess( $editInfo->pst, $this->mTitle, $editInfo->popts, $editInfo->revid ) ); array_push( $wgDeferredUpdateList, $u );