由对图数据的处理需求,看到了图数据库(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. EditText(7)EditText输入事件监听

    EditText.addTextChangedListener(TextWatcher watcher); void initSearch(){ search = (EditText) findVie ...

  2. DHTML_____如何编写事件处理程序

    <html> <head> <meta charset="utf-8"> <title>如何编写事件处理程序</title&g ...

  3. 连接oracle出现的问题以及解决办法

    连接oracle出现过的问题: 1,ORA-12514::监听程序当前无法识别链接描述符中请求的服务 1)重启服务,看是否解决 2)测试网络监听是否能监听成功,监听不成功的话,查看下面几个点:服务名( ...

  4. MVC学习-发送请求

    在HomeControl中添加一个Action,代码如下: public ActionResult Add() { return View(); } 当View()中不写任何参数时,默认会调用同名的视 ...

  5. 在idea中为类和方法自动生成注释

    https://my.oschina.net/mojiayi/blog/1608746

  6. leetcode516 Longest Palindromic Subsequence

    思路: 区间dp. 实现: class Solution { public: int longestPalindromeSubseq(string s) { int n = s.length(); ] ...

  7. android中用Intent传数据,如果用传递的是一个类,就将类实现Parcelable接口

    Parcelable,内存单位,跨进程使用,或者intent传递对象的时候使用.android中用Intent传数据,如果用传递的是一个对象,就将对象实现Parcelable接口,而不是将对象序列化. ...

  8. UVM基础之---------uvm factory机制register

    factory机制的一大特点就是根据类的名字来创建类的实例. factory 机制中根据类名来创建类的实例所用到的技术:一是参数化的类,二是静态变量和静态函数.这两者是factory机制实现的根本所在 ...

  9. "HybridDB · 性能优化 · Count Distinct的几种实现方式” 读后感

    原文地址:HybridDB · 性能优化 · Count Distinct的几种实现方式 HybridDB是阿里基于GreenPlum开发的一款MPP分析性数据库,而GreenPlum本身基于Post ...

  10. HDU_1864_最大报销额_01背包

    最大报销额 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status ...