如何使用PHP客户端通过Neo4j的REST接口进行数据操作

这篇文章将为大家详细讲解有关如何使用PHP客户端通过Neo4j的REST接口进行数据操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联建站专业为企业提供猇亭网站建设、猇亭做网站、猇亭网站设计、猇亭网站制作等企业网站建设、网页设计与制作、猇亭企业网站模板建站服务,十年猇亭做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Neo4j是目前最热门的图数据库之一,图数据库以计算机图结构为基础,擅长处理复杂的数据关系。比如我们常见的社交网络中的人与人的关系图。

如何使用PHP客户端通过Neo4j的REST接口进行数据操作

我们需要用上面的复杂SQL语句才能获取到和KevinBacon一起演出过的演员名单。

如果我们需要获取一个与和KevinBacon一起演出过的人一起演出过的演员名单(真拗口)就更麻烦了,再试想多一层,与(与(与KevinBacon一起演出过的演员)一起演出过的演员)一演出过的演员。那几乎是不可完成的任务了。

下面我们直接使用Neo4j的PHP客户端来构建图谱:

$client=newClient(newTransport('localhost',7474));

//构建演员节点

$keanu=newNode($client);

$keanu->setProperty('name','KeanuReeves')->save();

$laurence=newNode($client);

$laurence->setProperty('name','LaurenceFishburne')->save();

$jennifer=newNode($client);

$jennifer->setProperty('name','JenniferConnelly')->save();

$kevin=newNode($client);

$kevin->setProperty('name','KevinBacon')->save();

怎样使用PHP客户端通过Neo4j的REST接口进行数据操作

//构建电影节点

$matrix=newNode($client);

$matrix->setProperty('title','TheMatrix')->save();

$higherLearning=newNode($client);

$higherLearning->setProperty('title','HigherLearning')->save();

$mysticRiver=newNode($client);

$mysticRiver->setProperty('title','MysticRiver')->save();

//建立关联关系

$keanu->relateTo($matrix,'IN')->save();

$laurence->relateTo($matrix,'IN')->save();

$laurence->relateTo($higherLearning,'IN')->save();

$jennifer->relateTo($higherLearning,'IN')->save();

$laurence->relateTo($mysticRiver,'IN')->save();

$kevin->relateTo($mysticRiver,'IN')->save();

然后我们就能够在已经建立好的图结构上进行数据查询了。第一个查询是查找所有与KevinBacon距离为12的其它人(演员与演员间的距离只能是2的倍数,因为中间隔着电影)。

$path=$keanu->findPathsTo($kevin)

->setMaxDepth(12)

->getSinglePath();

foreach($pathas$i=>$node){

if($i%2==0){

echo$node->getProperty('name');

if($i+1!=count($path)){

echo"wasin\n";

}

}else{

echo"\t".$node->getProperty('title')."with\n";

}

}

你也可以用下面的语句查询所有与LaurenceFishburne相关的电影:

echo$laurence->getProperty('name')."wasin:\n";

$relationships=$laurence->getRelationships('IN');

foreach($relationshipsas$relationship){

$movie=$relationship->getEndNode();

echo"\t".$movie->getProperty('title')."\n";

}

关于“如何使用PHP客户端通过Neo4j的REST接口进行数据操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


文章名称:如何使用PHP客户端通过Neo4j的REST接口进行数据操作
本文路径:http://azwzsj.com/article/gegcsp.html