在neo4j上安装gremlin安装Gremlin for Neo4j 2.2

我们在exakat发动机的中心使用 格里蒙Neo4j。 Neo4j是图数据库,Gremlin是图形遍历语言。直到今天(2015年8月20日),Neo4J 2.2为Gremlin没有工作插件,这使我们使用了最新的Neo4J 2.1.8,但错过了2.2(即将到来的2.3)的所有努力。谢谢 @spmallette.@nachivpn.,这现在正常工作。

这是在Neo4j 2.2上安装Gremlin的方法,并运行它。

We’LL专注于在OSX上安装,尽管它应该很容易适应其他Linux式系统。

安装Java.

在OSX上,只需确保已安装Oracle’java,而不是苹果’s。我使用了Java 8,它也应该在Java 7上工作,但不建议。得到JRE,唐’使用其中一个浏览器误错了您的Java安装。 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html

一旦安装,或检查$ java_home环境变量:它应该设置为您计划使用的正确版本。否则,将其导出到良好的版本。在终端中执行以下操作:

echo $JAVA_HOME

// must look like this :
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
// jdk1.8.0_60.jdk is the main selector for the good version

验证

java -version

安装neo4j 2.2.4

First, we need Neo4j. I use community version. Download Neo4j 2.2.4 (as of August 20th), from http://neo4j.com/download/other-releases/. Then

tar -xvf neo4j-community-2.2.4-unix.tar.gz
cd neo4-community-2.24
./bin/neo4j start // to check this is working fine
./bin/neo4j stop // to avoid interference with gremlin install
// set this environnement variable to the right path

export NEO4J_HOME=`pwd`

为neo4j安装gremlin

The current plug-in for Gremlin is available on github, and maintained by the fine team at Think Aurelius : //github.com/thinkaurelius/neo4j-gremlin-plugin. Don’t mistake it with the neo4j-contrib, which is the father project, but isn’t updated anymore.

git clone //github.com/thinkaurelius/neo4j-gremlin-plugin.git gremlin
cd gremlin

此时,有两个选项:

  • 选项a)使用sonatype存储库安装Gremlin-Plugin(简单路径)
  • 选项b)从存储库(较长路径)安装Gremlin-Plugin

选项a)使用sonatype存储库安装Gremlin-Plugin

这是由@spmalette建议的舒适解决方案。编辑pom.xml,以及之后<contributor>标签,添加以下内容

<repositories>
<repository>
<id>snapshots-repo</id>
<url>//oss.sonatype.org/content/repositories/snapshots</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>

保存。然后,在终端运行:

mvn clean package

unzip target/neo4j-gremlin-plugin-*-server-plugin.zip -d $NEO4J_HOME/plugins/gremlin-plugin
$NEO4J_HOME/bin/neo4j restart

这应该是好的。跳到最终确定。

选项b)从存储库安装Gremlin-Plugin

目前,Gremlin插件取决于Gremlin-2.7.0-Snapshot,在Maven Server上不可用。所以,你必须自己汇编。 Gremlin取决于其他三个项目,因此您需要将所有所有项目编译。以下四个存储库是:

对于每个回购,请执行以下操作:

git clone <repo>
cd <repo>
mvn install
cd ..
rm -rf <repo>

这将为系统上的插件安装所需版本。然后,您可以转到Gremlin-Plugin文件夹:

cd gremlin-plugin folder
mvn clean package

unzip target/neo4j-gremlin-plugin-*-server-plugin.zip -d $NEO4J_HOME/plugins/gremlin-plugin
$NEO4J_HOME/bin/neo4j restart

现在,您可以继续完成

最后确定

最后,我们需要在neo4j中激活Gremlin插件。 Neo4j用于运送Gremlin插件,并默认激活它(最多1.9版本),但这不再是这种情况。

在neo4j.’s fold,编辑conf / neo4j-server.properties

围绕59,添加以下配置:

org.neo4j.server.thirdparty_jaxrs_classes=com.thinkaurelius.neo4j.plugins=/tp

然后,重新启动neo4j。

./bin/neo4j restart

检查全部运行的最简单方法是使用此脚本,从命令行:

curl -s -G --data-urlencode 'script="Hello World!"' \
http://localhost:7474/tp/gremlin/execute

这应该返回以下内容:

{
"results": [
"Hello World!"
],
"success": true
}

Neo-Conticle Gremlin插件和Thinkaurelius之间的两个主要差异’s

首先,格里林URL现在/ TP而不是/ dB / data / ext / gremlinplugin / graphdb / execute_script。这可能会阻止已硬于Gremlin插件的路径的旧库(例如Neo4jphp)。

其次,Thankaurelius.’如果使用REST API通信,则插件使用Get方法而未发布。将Gremlin查询发送到服务器的一般方式是相同的(Params = Value),因此短查询将相同。

Get方法有其自身的限制(即或实现其实施)。在查询传递20KB的某个地方,它变得太长,发出错误。这不是POST方法的情况,如果你的话’重新发送数据以馈送Neo4j,这可能会相当快。

要解决这个问题,您现在可以创建Gremlin脚本,它驻留在‘scripts’neo4j root的文件夹(您’LL自己需要创建此文件夹)。此文件夹包含包含有效Gremlin代码的.gremlinl文件。这是一个简单的示例,从文档中提取:

def sayHello(def name) {
"Hello ${name}!"
}

一旦代码写入脚本后,您可能会将其加载‘load’在get查询中的变量,包含文件名(不是函数’姓名,除非它们是相同的)。只需要加载一次,即服务器生命周期,如果你不一样’t再次需要它,重新启动以清理内存。一世’m不了解这些脚本的限制,尽管我可能需要某个日子。

此脚本系统将成为exakat的好系统,因为我们需要定义通常重复使用的一些Gremlin步骤。它们可以在启动时轻松加载在服务器中,并准备好稍后使用。