关于用Java实现在线wiki系统

中场三分 发布于 2014/05/16 01:16
阅读 1K+
收藏 0


很想用Java开发一个Wiki(登录、搜索、编辑,本来想着挺简单),主要想借此探索一直想要学习的技术,遇到几个难点:

  1. 考虑集群环境(其实没有接触过,但总要有第一次嘛);
  2. 数据库存储还是文件系统存储?
  3. 全文搜索引擎要对每一次修改的提交重建一次索引?开销会越来越大?(Lucene or ElasticSearch)
  4. 如何支持Markdown语法以及在线Markdown编辑器(能不能客户端javascript解析Markdown语法?)
  5. 如何处理多用户同时提交编辑修改?
  6. 客户端javascript实现文件对比(git@osc和github那样的怎么实现的?关键是很美观

同时,我尝试了Jamwiki ,几乎是 Wikipedia 的完美复制,大致看了源码,是多数据库支持的,另外采用Lucene作为全文搜索引擎,基本上是JDBC+Servlet+JSP以及自定义的Taglib实现的,二次开发不太可能,而且UI也很难调整了(wiki就一定要那样布局?!)。

另外,Jamwiki 似乎也没有处理好上面提出的第5条,我是用两个浏览器,不同的用户分别点击提交进行测试的,结果如图:(当然是稍晚的那个throw的……)

另外想知道 Wikipedia 是怎么处理这个的。

如果你有好的方案,希望能分享建议,如果你有能力有时间有兴趣……一起(或作为Leader)来实现它的话,不胜感激。

加载中
0
算法与编程之美
算法与编程之美
可以考虑研究一下xwiki的源码,个人人为xwiki的架构还是不错的,值得研究和学习。
返回顶部
顶部