今年6月份以后Google在中国大陆就完全无法访问了,搞得我们以前嵌入过Google地图、Google搜索等API代码的网站也打开困难,用Google DFP投放的AdSense广告也收益下降、匹配变差,前一阵子不得已把放在国内服务器上的中文网站进行了一轮修改,全面用百度相应的产品百度地图、百度搜索、百度联盟、百度广告管家等软件来替换Google的产品。
Drupal网站中的查找和修改比较容易,而MediaWiki网站就麻烦一些,一些页面和模板都是很多年前设置的,难以记忆,Wiki原代码中的HTML代码也无法通过Wiki搜索直接找到。后来找了一个直接在数据库中查找的办法来解决,步骤如下:
- 用phpmyadmin打开MediaWiki网站对应的数据库,找到searchindex这个表
- 在searchindex表的si_text字段中搜索需要的关键词SELECT * FROM `jinglesearchindex` WHERE `si_text` LIKE '%googleFillSlot%' LIMIT 0 , 30
- 查看搜索结果,包含si_page、si_title、si_text三个字段,第一个字段是页面的ID,后面是经过编码的标题和内容
- 用这个网址打开找到的页面http://www.youbianku.com/index.php?curid=46 ,其中46就是si_page;
- 编辑该页面,在源代码中查找、替换,然后保存;
- 全部si_text的页面都修改后,phpmyadmin中刷新第2步的搜索,查看结果,顺利的话应该就找不到符合条件的记录了。
偶尔也有搜索结果与实际不符的情况,可能是修改没有实时更新Wiki搜索的数据库造成的。
2016年5月13日补充:要彻底检查文本(包括历史页面旧版本)中包含的字符,可以这样搜索:
select oldid from text where old_text like '%BAIDU%';
再从这里的oldid(例如: 2077106)继续查询:
select rev_page from jinglerevision where rev_text_id = 2077106;
这个获得的rev_page(例如:58394)就是上面说的si_page,也就可以http://www.youbianku.com/index.php?curid=58394
来查看、编辑页面。
评论2
关于mediawiki的搜索模块
初次接触mediawiki现在正在找他的负责进行搜索的代码,但初步发现apiquerysearch.php和specialsearch.php.貌似有搜索的功能,到底是哪段代码负责搜索的呢?期待您的回复。我也没有修改过MediaWiki搜索代码
MediaWiki我用的时间很长了,但绝大多数都是使用其功能,修改代码很少,搜索部分没有改过,所以还不知道具体代码位置,抱歉。建议您在官方网站查找相关资料,我以前都是这样慢慢摸索的。