MediaWiki-1.32.0中的sphinxsearch-0.9错误

时间:2019-01-15 09:14:58

标签: mediawiki sphinx

2019/01/14 12:04:51 [error] 21549#21549: *3558 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class SphinxMWSearch contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (SearchDatabase::doSearchTextInDB, SearchDatabase::doSearchTitleInDB) in /var/opt/www/extensions/SphinxSearch/SphinxMWSearch.php on line 15" while reading response header from upstream, client: 192.168.122.1, server: wiki.yuyizhi.org, request: "GET /index.php?title=Special:%E6%90%9C%E7%B4%A2&search=sphinx HTTP/1.0", upstream: "fastcgi://unix:/var/run/php-fpm/php5-fpm.sock:", host: "wiki.yuyizhi.org"

在stderr中发送的FastCGI:“ PHP消息:PHP致命错误:类SphinxMWSearch包含2个抽象方法,因此必须声明为抽象或实现/ var / opt /中的其余方法(SearchDatabase :: doSearchTextInDB,SearchDatabase :: doSearchTitleInDB)第15行上的www / extensions / SphinxSearch / SphinxMWSearch.php”,客户端:192.168.122.1,服务器:wiki.abc.com,请求:“ GET /api.php?action=opensearch&search=bai&namespace=0 HTTP / 1.0”,主机:“ wiki.abc.com”

2 个答案:

答案 0 :(得分:0)

SphinxSearch扩展的SearchDatabase类已从REL1_31更改为REL1_32。现在,您需要定义doSearchTextInDBdoSearchTitleInDB方法。

请参阅REL1_31 https://doc.wikimedia.org/mediawiki-core/REL1_31/php/classSearchDatabase.html vs REL1_32 https://doc.wikimedia.org/mediawiki-core/REL1_32/php/classSearchDatabase.html

如果您在不赞成使用的情况下搜索Search,则这是补丁说明中提到的一种(注意,这是向后兼容中断)https://www.mediawiki.org/wiki/Release_notes/1.32#Compatibility

  

不赞成在扩展类中重写SearchEngine :: {searchText,searchTitle,searchArchiveTitle}。而是扩展相关的doSearch *方法。

如果您像我一样,又不愿意自己修复此扩展程序,则必须等待扩展程序提供者之一来更新该扩展程序,以使其可与REL1_32一起使用。在此之前,如果您想使用扩展名,则必须停留在REL1_31上。

答案 1 :(得分:0)

仅在SphinxMWSearch.php类的定义下将这两个空函数添加到SphinxMWSearch似乎可以解决问题。据我所知,它使它不再抱怨,搜索功能运行良好。

function doSearchTextInDB($term) {
}
function doSearchTitleInDB($term) {
}

希望此扩展程序的开发人员很快会提出正确的解决方案。