I'm sorry, I just pasted this in in a hurry because our bureau closes at 16:30 on Fridays. So I try again now:
I have upgraded my wiki to Version 1.34.0, including the extensions. Now the phenomenon is, that when I make use of the SphinxSearch extension, instead of search results it comes up with this error message:
[895083e3cfe4edcfab999700] /testwiki/index.php?search=Celia&title=Spezial%3ASuche&go=Seite ArgumentCountError from line 28 of /srv/www/htdocs/testwiki/extensions/SphinxSearch/SphinxMWSearchResult.php: Too few arguments to function SphinxMWSearchResult::getTextSnippet(), 0 passed in /srv/www/htdocs/testwiki/includes/widget/search/FullSearchResultWidget.php on line 65 and exactly 1 expected
Backtrace:
#0 /srv/www/htdocs/testwiki/includes/widget/search/FullSearchResultWidget.php(65): SphinxMWSearchResult->getTextSnippet()
#1 /srv/www/htdocs/testwiki/includes/widget/search/BasicSearchResultSetWidget.php(122): MediaWiki\Widget\Search\FullSearchResultWidget->render(SphinxMWSearchResult, integer)
#2 /srv/www/htdocs/testwiki/includes/widget/search/BasicSearchResultSetWidget.php(70): MediaWiki\Widget\Search\BasicSearchResultSetWidget->renderResultSet(SphinxMWSearchResultSet, integer)
#3 /srv/www/htdocs/testwiki/includes/specials/SpecialSearch.php(462): MediaWiki\Widget\Search\BasicSearchResultSetWidget->render(string, integer, SphinxMWSearchResultSet, SphinxMWSearchResultSet)
#4 /srv/www/htdocs/testwiki/includes/specials/SpecialSearch.php(179): SpecialSearch->showResults(string)
#5 /srv/www/htdocs/testwiki/includes/specialpage/SpecialPage.php(575): SpecialSearch->execute(NULL)
#6 /srv/www/htdocs/testwiki/includes/specialpage/SpecialPageFactory.php(611): SpecialPage->run(NULL)
#7 /srv/www/htdocs/testwiki/includes/MediaWiki.php(296): MediaWiki\Special\SpecialPageFactory->executePath(Title, RequestContext)
#8 /srv/www/htdocs/testwiki/includes/MediaWiki.php(900): MediaWiki->performRequest()
#9 /srv/www/htdocs/testwiki/includes/MediaWiki.php(527): MediaWiki->main()
#10 /srv/www/htdocs/testwiki/index.php(44): MediaWiki->run()
#11 {main}
To elaborate on the problem, this is what I have in the LocalSettings.php:
#wfLoadExtension( 'SphinxSearch' );
$wgSearchType = 'SphinxMWSearch';
wfLoadExtension( 'SphinxSearch' );
#require_once( "$IP/extensions/SphinxSearch/SphinxSearch_testwiki.php" );
#wfLoadExtension( 'SphinxSearch_testwiki' );
# Host and port on which searchd deamon is tunning
#$wgSphinxSearch_index = "my_testwiki_main";
#$wgSphinxSearch_index_list = "my_testwiki_main,my_testwiki_incremental";
$wgFooterIcons['poweredby']['sphinxsearch'] = array(
'src' => "$wgScriptPath/extensions/SphinxSearch/Powered_by_sphinx.png",
'url' => 'http://www.mediawiki.org/wiki/Extension:SphinxSearch',
'alt' => 'Search Powered by Sphinx',
);
And the extension.json looks like this:
{
"name": "SphinxSearch",
"author": "Svemir Brkic, Paul Grinberg",
"url": "https://www.mediawiki.org/wiki/Extension:SphinxSearch",
"descriptionmsg": "sphinxsearch-desc",
"license-name": "GPL-2.0",
"type": "other",
"version": "1.0.0",
"AutoloadClasses": {
"SphinxMWSearch": "SphinxMWSearch.php",
"SphinxMWSearchResult": "SphinxMWSearchResult.php",
"SphinxMWSearchResultSet": "SphinxMWSearchResultSet.php"
},
"ExtensionFunctions": [
"SphinxMWSearch::initialize"
],
"MessagesDirs": {
"SphinxSearch": [
"i18n"
]
},
"config": {
"SphinxSearch_host": "127.0.0.1",
"SphinxSearch_port": 9312,
"SphinxSearch_index": ",my_testwiki_main",
"SphinxSearch_index_list": "my_testwiki_main,my_testwiki_incremental",
"SphinxSearch_index_weights": "null",
"SphinxSearch_mode": 4,
"SphinxSearch_sortmode": 0,
"SphinxSearch_sortby": "",
"SphinxSearch_maxmatches": 1000,
"SphinxSearch_cutoff": 0,
"SphinxSearch_weights": {
"old_text": 1,
"page_title": 100
},
"SphinxSearchMWHighlighter": true,
"SphinxSuggestMode": "",
"SphinxSearchAspellPath": "aspell",
"SphinxSearchPersonalDictionary": "",
"EnableSphinxInfixSearch": false,
"EnableSphinxPrefixSearch": true
},
"manifest_version": 1
}
So I activated the PHP error message display, and it shows me this error message:
Warning: Declaration of SphinxMWSearchResult::getTextSnippet($terms) should be compatible with RevisionSearchResult::getTextSnippet($terms = Array) in /srv/www/htdocs/testwiki/extensions/SphinxSearch/SphinxMWSearchResult.php on line 14
So I took a look at both functions. The one in SphinxMWSearchResult.php looks like this:
public function getTextSnippet( $terms ) {
global $wgAdvancedSearchHighlighting, $wgSphinxSearchMWHighlighter, $wgSphinxSearch_index;
$this->initText();
$contextlines = 2;
$contextchars = 75;
if ( $wgSphinxSearchMWHighlighter ) {
$h = new SearchHighlighter();
if ( $wgAdvancedSearchHighlighting ) {
return $h->highlightText( $this->mText, $terms, $contextlines, $contextchars );
} else {
return $h->highlightSimple( $this->mText, $terms, $contextlines, $contextchars );
}
}
$excerpts_opt = [
"before_match" => "(searchmatch)",
"after_match" => "(/searchmatch)",
"chunk_separator" => " ... ",
"limit" => $contextlines * $contextchars,
"around" => $contextchars,
];
$excerpts = $this->sphinx_client->BuildExcerpts(
[ $this->mText ],
$wgSphinxSearch_index,
implode( ' ', $terms ),
$excerpts_opt
);
if ( is_array( $excerpts ) ) {
$ret = '';
foreach ( $excerpts as $entry ) {
// remove some wiki markup
$entry = preg_replace(
'/([\[\]\{\}\*\#\|\!]+|==+|<br ?\/?>)/',
' ',
$entry
);
$entry = str_replace(
[ "<", ">" ],
[ "<", ">" ],
$entry
);
$entry = str_replace(
[ "(searchmatch)", "(/searchmatch)" ],
[ "<span class='searchmatch'>", "</span>" ],
$entry
);
$ret .= "<div style='margin: 0.2em 1em 0.2em 1em;'>$entry</div>\n";
}
} else {
$ret = wfMessage( 'internalerror_info', $this->sphinx_client->GetLastError() );
}
return $ret;
}
}
compared to the one in RevisionSearchResultTrait.php:
public function getTextSnippet( $terms = [] ) {
return '';
}
So what do I do about it?