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

简介:

能够将维基百科导入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月前
|
SQL 数据库连接 数据库
你不知道ADo.Net中操作数据库的步骤【超详细整理】
你不知道ADo.Net中操作数据库的步骤【超详细整理】
16 0
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
XML 关系型数据库 MySQL
python将word(doc或docx)的内容导入mysql数据库
用python先把doc文件转换成docx文件(这一步也可以不要后续会说明),然后读取docx的文件并另存为htm格式的文件(上一步可以直接把doc文件另存为htm),python根据bs4获取p标签里的内容,如果段落中有图片则保存图片。(图片在word文档中的位置可以很好的还原到生成的数据库内容) 我见网上有把docx压缩后解压获取图片的,然后根据在根据xml来读取图片的位置,我觉得比较繁琐。用docx模块读取段落的时候还需要是不是判断段落中有分页等,然而转成htm之后就不用判断那么多直接判断段落里的样式或者图片等就可以了。
27 1
|
1月前
|
存储 缓存 NoSQL
利用Redis List实现数据库分页快速查询的有效方法
利用Redis List实现数据库分页快速查询的有效方法
|
3月前
|
JSON NoSQL 小程序
Mongodb数据库的导出和导入总结
Mongodb数据库的导出和导入总结
198 0
|
3月前
|
设计模式 NoSQL Java
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
常用的设计模式以及操作Redis、MySQL数据库、各种MQ、数据类型转换的方法
|
4月前
|
SQL 数据库 Python
记Flask-Migrate迁移数据库失败的两个Bug——详解循环导入问题
Flask-Migrate迁移数据库失败的两个Bug 1、找不到数据库:Unknown database ‘***’ 若还没有创建数据库,该迁移工具不会自动创建。你可以使用SQL命令手动创建一个数据库:
40 0
|
1月前
|
SQL 关系型数据库 MySQL
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
101 1
|
1月前
|
SQL 安全 数据管理
在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
【2月更文挑战第33天】在阿里云数据管理DMS(Data Management Service)中,您可以按照以下步骤来创建和管理数据库
37 7

热门文章

最新文章