能够将维基百科导入Neo4j数据库是不是很酷?

  Neo4j是NoSQL的一个代表,它是一个嵌入式,基于磁盘的,支持完整事务的Java持久化引擎,它在图像中而不是表中存储数据。Neo4j提供了大规模可扩展性,在一台机器上可以处理数十亿节点/关系/属性的图像,可以扩展到多台机器并行运行。相对于关系数据库来说,图形数据库善于处理大量复杂、互连接、低结构化的数据,这些数据变化迅速,需要频繁的查询——在关系数据库中,这些查询会导致大量的表连接,因此会产生性能上的问题。

  Neo4j重点解决了拥有大量连接的传统RDBMS在查询时出现的性能衰退问题。通过围绕图形进行数据建模,Neo4j会以相同的速度遍历节点与边,其遍历速度与构成图形的数据量没有任何关系。此外,Neo4j还提供了非常快的图形算法、推荐系统和OLAP风格的分析,而这一切在目前的RDBMS系统中都是无法实现的。

  英国的软件工程师Mirko Nasato同样意识到这点,并使用批处理导入技术创建了Graphipedia(注:graphipedia是一个将维基百科页面和超链接导入图形数据库的工具集)。

  Graphipedia使用Java编写,如果你专注于Ruby,并不擅长使用Java,下面的教程将会手把手的教你如何完成这些步骤。

  首先,复制这个项目并打开:

  git clone git://github.com/mirkonasato/graphipedia.git

  cd graphipedia
如果发现pom.xml文件意味着你需要下载Maven并创建项目。

  sudo apt-get install maven2

  mvn install
你将看到一串代码滚动,这是相关文件在下载,运行到最后你将看到如下代码:

  [INFO] ------------------------------------------------------------------------

  [INFO] Reactor Summary:

  [INFO] ------------------------------------------------------------------------

  [INFO] Graphipedia Parent .................................... SUCCESS [1:08.932s]

  [INFO] Graphipedia DataImport ................................ SUCCESS [1:16.018s]

  [INFO] ------------------------------------------------------------------------

  [INFO] ------------------------------------------------------------------------

  [INFO] BUILD SUCCESSFUL

  [INFO] ------------------------------------------------------------------------

  [INFO] Total time: 2 minutes 25 seconds

  [INFO] Finished at: Thu Feb 16 11:36:55 CST 2012

  [INFO] Final Memory: 28M/434M

  [INFO] ------------------------------------------------------------------------
下面将需要下载的维基百科文件通过wget下载下来:

  wget http://dumps.wikimedia.org/enwiki/latest/enwiki-latest-pages-articles.xml.bz2
这足足有7.6G的文件,我们先尝试一个较小的数据:Peesi tali fiefia词条,然后解压缩该词条的维基百科文件。

  wget http://dumps.wikimedia.org/towiki/latest/towiki-latest-pages-articles.xml.bz2

  bzip2 -d towiki-latest-pages-articles.xml.bz2
以下是两个步骤,首先创建一个只包含页面标题和链接的较小的中间XML文件:

  java -classpath ./graphipedia-dataimport/target/graphipedia-dataimport.jar org.graphipedia.dataimport.ExtractLinks towiki-latest-pages-articles.xml towiki-links.xml
显示如下:

  Parsing pages and extracting links...

  ..

  2835 pages parsed in 0 seconds.
然后运行批处理导入该文件,将内容存储在图形数据库目录下。

  java -Xmx3G -classpath ./graphipedia-dataimport/target/graphipedia-dataimport.jar org.graphipedia.dataimport.neo4j.ImportGraph towiki-links.xml graph.db
将会出现以下代码:

  Importing pages...

  ..

  2835 pages imported in 0 seconds.

  Importing links...

  .....

  5799 links imported in 0 seconds; 6383 broken links ignored
打开并查看neostore文件夹:

  cd graph.db

  ls
重写/neo4j/data/graph.db文件夹,将该文件夹覆盖任何原有Neo4j数据库。

本文转自 wws5201985 51CTO博客,原文链接:http://blog.51cto.com/wws5201985/786478,如需转载请自行联系原作者

将维基百科导入图形数据库的方法和步骤相关推荐

  1. dae怎么用草图大师打开_将草图大师su模型导入lumion的方法与步骤

    原标题:将草图大师su模型导入lumion的方法与步骤 sketchup模型怎么导入lumion?本文小编要和大家分享将草图大师su模型导入lumion的方法与步骤,还不知道草图大师模型如何导入lum ...

  2. 维基百科用php,在PHP中解析维基百科标记的最佳方法是什么?

    我试图以结构化的方式解析特定的维基百科内容.这是一个示例页面: 我取得了一些成功.我可以检测到这个页面是一个"specie"页面,我也可以将Taxobox(右侧)的信息解析成一个结 ...

  3. 实体链接维基百科调研

    略微整理一下关于实体链接消歧的入门知识 本篇是关于论文[张佐亮 "基于维基百科的实体链接方法的研究与实现"]的内容记录 文章目录 实体链接定义 一.实体链接步骤 二.实体链接细节 ...

  4. abb机器人导入桌子,abb工业机器人单独导入程序方法和步骤

    执行数据还原时,应注意备份数据是自然的.无法将一个机械手的备份还原到另一机械手,否则会导致系统故障. 但是,程序和I / O的定义通常很常见,因此在进行批量生产时,可以通过分别导入程序和EIO文件来解 ...

  5. 维基百科 mysql_把维基百科首页词条的数据导入mysql【Python】

    title: 把维基百科首页词条的数据导入mysql[Python] date: 2016-09-13 0:59:28 tags: 1.此文是跟着上一篇来写的,之前,已经完成了对维基百科词条的数据采集 ...

  6. 使用中文维基百科训练word2vec模型的最新方法!

    网上看了很多其他博客,发现有些部分都太老旧了,以至于现在套用都错误百出...这里总结了一下使用中文维基百科训练word2vec模型的最新方法. 参考链接: https://blog.csdn.net/ ...

  7. [转]维基百科数据导入

    本文来自:http://app.cnzer.cn/html-83146-1.html 两篇文章分别总结了各自的wikipedia数据导入过程,来不及学习,故先转载: (一)wmdumper.jar f ...

  8. 国内用户访问维基百科(Wikipedia)的几种方法

    世界上最受欢迎的网站之一.知识宝库"维基百科"(Wikipedia.org)在中国大陆是被封锁的,必须借助代理服务器才能打开. 好在维基百科采用GNU公共许可证,任何人都可以自由使 ...

  9. PyQt - 维基百科,自由的百科全书

    PyQt - 维基百科,自由的百科全书 PyQt 维基百科,自由的百科全书 跳转至: 导航. 搜索 PyQt 開發者 Riverbank Computing 穩定版本 4.9.5/ 2012年9月29 ...

最新文章

  1. 叮!你有一份2018英特尔人工智能大会的邀请函,请查收!
  2. 拉新不留存,就是负增长(附建议)
  3. 数据库原理及应用【六】数据库设计
  4. java语言就业方向_四大就业方向彻底解决你学习Java语言编程的后顾之忧-生活感悟与随笔 -亦是美网络...
  5. 严肃贴:内幕 手机行业
  6. springmvc+ueditor上传路径(个人备忘)
  7. ( 转 ) CORS 有一次 OPTIONS 请求的原理
  8. PHP word转pdf
  9. 经典商业模式案例第1例:校园O2O
  10. JavaScript格式化日期和时间
  11. 微信公众号采集 php,如何采集微信公众号历史消息页的详解
  12. linux 清除终端记录,清除Linux终端命令的历史记录
  13. Oralce 之 TM锁
  14. 不用验证,下载wmp10
  15. boost | 线程与并发(一)atomic
  16. elasticsearch 出现yellow 分片有unassigned现象原因
  17. 下载链接在微信中无法打开的解决方案
  18. 微信摇一摇周边新功能上线
  19. 设计师和程序员必备5个超赞的配色工具,从此配色无忧!
  20. [转载]Python中包装(wrapping)与代理(delegation)

热门文章

  1. 【SonarQube】CentOS7安装SonarQube并集成GitLab-CI实现代码提交后自动扫描
  2. Qt 仿酷狗播放列表右键菜单
  3. 考研复试——离散数学
  4. vue组件之间传值方式
  5. apache上如何部署html页面,apache快速部署网页
  6. 一键将Web页面保存至Anki
  7. 【东拉西扯蛋】卖身不卖唱
  8. 问题记录——the specified group[${xxx}] contains illegal characters, allowing only ^[%|a-zA-Z0-9_-]+$
  9. 班级学习分享系统_班级分享
  10. 计算机网络笔记-应用层/传输层/网络层(2w字详细整理)