十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关如何使用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接口进行数据操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。