由对图数据的处理需求,看到了图数据库(GraphDataBase)这种比较新的数据库模式,并且通过比较发现用的相对多的要属Neo4j了,现在来看网上对Neo4j的介绍还比较少,内容主要来源于三个地方:官方网站http://www.neo4j.org/ ;中文社区http://www.neo4j.org.cn/ 和Neo4j
google网上论坛https://groups.google.com/forum/?fromgroups#!forum/neo4j。而中文社区的内容基本上是对官网内容的翻译,可以中英文对照着看,以加快理解。

       在各种官方资料中都说Neo4j的性能优良,可以支持几十亿个节点和上百亿的关系,于是怀着兴奋和期望开始了对它的研究。
      Neo4j有两种运行模式,即程序嵌入式模式和服务器模式。对于项目的长期使用来说显然是服务器模式更加适合。所以在对嵌入式模式进行了简单的了解之后就开始对其服务器模式进行研究。对于官网中已经介绍的内容本文就不再赘述了,而目前能搜索到的资料基本上也是这些内容的重复,本文中讲一些我使用过程中遇到的问题和经验。
      首先当然是去官网上下载安装包。我选择的是neo4j-enterprise-1.8.M07-windows版本,按照官网的教程逐步进行安装,启动。这个时候遇到了第一个问题,就是neo4j.bat install执行之后,服务可以安装上去,但是无论如何都无法启动。提示:失败 1053 服务没有及时响应启动或控制请求 在网上翻看了很多资料,基本上都是修改服务的超时时间,但是此时对这个问题无效。最后在google论坛上看到相似内容,可能是电脑安装的Java
jdk版本问题,于是把jdk 1.7 换回到jdk 1.6,再启动果然问题解决了。所以如果要使用Neo4j的服务器模式运行,最好还是首先确定自己电脑安装的是jdk 1.6 
    服务运行起来之后就是研究它的功能和用法了。我用的是Java,所以一切内容都是以Java为语言基础的。服务器模式提供了REST API,但是由于水平有限,要自己通过Java使用这些API实在是不容易。于是寻找针对REST API的封装工具。http://docs.neo4j.org.cn/server-java-rest-client-example.html这里介绍了如何在Java中使用REST
API,其中用到了Jersey,但是在网页上所给的例子中我发现了一个问题,在查询某个点的时候,他的参数用到了之前创建点的时候的临时变量URI firstNode,这就意味着如果所有点已经创建完毕,而我想通过某个点的属性查询到它的话就没有办法了。遗憾的是Java使用REST API这部分只有这一页的例子,其他地方也没有搜索到相关资料。这种方法只能先告一段落。
    还有另外一种方法是通过Java-REST-Bindinghttp://docs.neo4j.org.cn/rest-clients.html 它集成了REST API 可以通过Java远程连接Neo4j服务器GraphDatavaseService
gds=new RestGraphDatabase("http://10.108.xxx.xx:7474/db/data");同时还支持Neo4j-core-API,这样就可以像使用嵌入式模式那样的代码形式对数据库进行响应操作,而且嵌入式模式下的代码实例相对较多。这样就可以很方便的进行创建节点,添加属性和关系,查询,创建索引等操作。
    与MongoDB的可视化操作工具MongoVUE相似的是,针对Neo4j也有一个工具-neoclipse。cfeibiao的博客http://blog.csdn.net/cfeibiao/article/details/6842941有对它的基本介绍。
    如果你的数据库已经对应点的属性建立了索引,则可以通过某个点的属性值对其进行查询,比如“name”属性的“张三”。另外还支持cyper语言查询。
    另外一种检测工具就是web控制台,可以通过http://ip地址:7474/webadmin访问。
的一些使用心得" title="Neo4j 的一些使用心得" style="border:0px;list-style:none;">

的一些使用心得" title="Neo4j 的一些使用心得" style="border:0px;list-style:none;">

    最终,一个致命的问题就是速度问题。从现有的MongoDB中把数据转存到Neo4j中,包括查重、设置属性、关系、建立索引等操作,完成一个点需要将近1秒的时间,这是无法忍受的速度。。。

Neo4j 的一些使用心得的更多相关文章

  1. neo4j性能调优(转)

    最近在公司实习做的就是优化neo4j图形数据库查询效率的事,公司提供的是一个在Linux上搭建且拥有几亿个节点的数据库.开始一段时间主要是熟悉该数据库的一些基本操作,直到上周才正式开始步入了优化数据库 ...

  2. neo4j - 查询效率的几种优化思路

    最近在公司实习做的就是优化neo4j图形数据库查询效率的事,公司提供的是一个在Linux上搭建且拥有几亿个节点的数据库.开始一段时间主要是熟悉该数据库的一些基本操作,直到上周才正式开始步入了优化数据库 ...

  3. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  4. NoSql数据库使用半年后在设计上面的一些心得

    NoSql数据库这个概念听闻许久了,也陆续看到很多公司和产品都在使用,优缺点似乎都被分析的清清楚楚.但我心里一直存有一个疑惑,它的出现究竟是为了解决什么问题? 这个疑惑非常大,为此我看了很多分析文章, ...

  5. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  7. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  8. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  9. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

随机推荐

  1. web api 二

    接着上一回说,上回说到,web api有几种访问方式,具体有几种,我还真没去研究过,但是这里打算从get.post.put.delete四种请求方式分别谈谈基础类型(包括int/string/date ...

  2. vue中引入swiper插件

    这里我们使用npm的方式安装swiper插件. 1.npm install vue-awesome-swiper --save 2.在main.js文件中引入文件 import Vue from 'v ...

  3. SCRIPT70: 没有权限

    主要原因:iframe安全而引发的问题,浏览器中js是没有垮域访问的权限的.如果用到iframe首先确保不垮域,或者不用iframe以绕开这个问题. 另外在jquery的早期版本中如:jquery-1 ...

  4. 计算给定数组 arr 中所有元素的总和的几种方法

    1.forEach遍历: function sum(arr) {     var result = 0;     arr.forEach(function(item,index) {          ...

  5. Server 2008 R2 事件查看器实现日志分析

    在 windows server 2008 R2 中,可以通过点击 "开始" -> "管理工具" -> "事件查看器" ,来打开 ...

  6. DNN结构构建:NAS网络结构搜索和强化学习、迁移学习

    前言 谷歌推出的NASNet架构,用于大规模图像分类和识别.NASNet架构特点是由两个AutoML设计的Layer组成--Normal Layer and Reduction Layer,这样的效果 ...

  7. canvas一周一练 -- canvas绘制马尾图案 (5)

    运行效果: <!DOCTYPE html> <html> <head> </head> <body> <canvas id=" ...

  8. 编写Java脚本统计工程代码总行数

    在新公司工作将近一年了,一直独自一人负责服务端集群的运维和代码的编写.不知不觉从一个Project发展到了七八个Project. 看着越来越多的代码,今天突然想统计一下一共写了多少代码.[这里只统计完 ...

  9. RocketMQ学习笔记(15)----RocketMQ的消息模式

    在前面学习ActiveMQ时,看到ActiveMQ可以是队列消息模式,也可以是订阅发布模式. 同样,在RocketMQ中,也存在两种消息模式,即是集群消费模式和广播消费模式. 1. 集群消费模式 跟A ...

  10. SpringBoot项目编译后没有xxxmapper.xml文件解决方法

    在pom.xml文件中添加如下代码 <build> <plugins> <plugin> <groupId>org.springframework.bo ...