能够将维基百科导入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. 用Transformer定义所有AI模型!特斯拉AI总监Karpathy发推感叹AI融合趋势
  2. 高德纳咨询公司(Gartner)预测:2019年七大人工智能科技趋势
  3. 设置UIButton上面是image,下面是title
  4. SpringMVC拦截器HandlerInterceptor原理及使用
  5. android获取子线程id,Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
  6. Android屏幕适配的两种方式
  7. IDEA 2021.1正式发布,新增了这几个超实用功能!
  8. 如何在VScode 中 调试 ts 文件 Unit test
  9. cocos2d-x之Box2d初试
  10. dnsever 邮件记录
  11. mysql的sql分页查询语句怎么写_sql 分页查询语句(mysql分页语句)
  12. EPS格式转黑白照片(高清晰版本)
  13. 服务器驱动硬盘故障修复,如何修复崩溃的硬盘驱动器
  14. 《机械制造技术基础》常见的问题
  15. Spring之Bean后处理器——InstantiationAwareBeanPostProcessor的使用与源码解析
  16. 【托业】【新托业TOEIC新题型真题】学习笔记13-题库四-P7
  17. c语言如何反复执行一段程序,C语言中重复执行程序的问题
  18. 【观察】OceanBase 4.0,单机与分布式的新拐点
  19. Network (哈工大网课笔记)
  20. 使用vue制作网页导航栏

热门文章

  1. 在matplotlib中设置中文字体
  2. 支付宝联合我的天科技 AR技术助力杭州海外参展
  3. 单片机节日彩灯实训报告_单片机(节日彩灯控制).doc
  4. 【报告分享】2021颜值经济新消费报告-CBNDATA(附下载)
  5. 制定项目管理计划有什么作用呢?
  6. ISO27001认证为保护企业信息安全而战
  7. 什么是在职研究生同等学力申硕?
  8. 一个适合初学者的C++推箱子小游戏
  9. 防火墙,如何理解防火墙,他与堡垒机的差别
  10. 【调剂】福建省网络安全与密码技术重点实验室(福建师范大学)网络与信息安全团队招收硕士...