浏览:3272007-11-04 16:21   来自watson hua      :

待整理。

因为组内推行使用wiki来共享知识并更有意使用wiki作为文档系统。所以介入。我们的wiki使用的是mediawiki,是一个wamp项目。之前从没有接触过php,而我们的wiki也不是我部署起来的。碰巧allwiki刚被查封,又失去了一个快速获取解决方案的途径。总而言之,我是在不熟悉wiki的情况下介入的,所以很多问题也许是我个人的,而非大家都会遇到的。不过从国内的mediawiki使用情况来看,定制程度也并不是很乐观。有一些wiki站点尽管在内容上看起来已经有血有肉,但有些关键问题还是没有解决。

搜索问题是最重要也最难解决的。mediawiki的搜索是基于mysql的全文检索的。在默认情况下,mysql的全文检索的单词最短长度为4,这给搜索造成了障碍。在mysql的配置文件里可以添加一个配置节点改为更短,重启mysql服务使配置生效,然后重建一个搜索相关的表(记不得了,很容易查到)的索引。同样,一些stopwords也可以更改。这些都是小事了。

在wikipedia里,搜索是按相关度排名的。这个功能在mediawiki里并没有提供,被提供的是一个会把中文分词为许多汉字的废物,排名也给了某一项指数非常高的权重,会把一些热点条目排在最前面,尽管和搜索关键词毫不相关。尽管mediawiki还提供了一些搜索相关的extension,但似乎还是没有包括wikipedia的搜索功能。我尝试了两个,一个是google的搜索拓展,这是个外部搜索工具,组内的wiki并没有提供internet访问,所以此路不通。另一个是lucene的全文检索拓展,部署起来似乎挺困难,我没有试完。不过过程中,我感觉这也不是我想要的,而仅是一个更合理的排名,相比于另一个很不合理的排名而言。

老大的意思是,搜索可以不必分词,直截了当的把关键词找出来,也可以凑合用了。我在php文件中找到了分词相关的代码,其中有一个合法字符的正则,我把中文的unicode区间正则也加了进去,结果搜出来的东西混入了乱码。暂时还没找到其他办法。恐怕想兵不血刃的改一下是不可能了,还是要学一下php。

另一个要求是包含,在首页上包含其他页面内容或摘要。用{{}}语法可以简单做到内容包含,但要包含的页面布局及格式上并不适合被包含。不得不去改一下被包含的页面的代码。如果是一个普通的条目页面,可以让用户来控制他们写出来的html。如果是一个特殊页面的话,可以去www/includes找到这个页面,例如Special:Recentschanges对应的源代码文件是Specialrecentchanges.php。

还有一个需求是简化一些页面,这要针对具体页面而言,看似类似的表现,不一定用同一段代码来做,甚至用完全不同的模式来做。以后我理清出了,也会整理出来。

这篇文章目前还很乱。权且占个位置,待整理。

楼主

你还不是小组成员,加入小组以后才能发布新主题!
1 11713