这篇文章将为大家详细讲解有关如何使用PHP客户端通过Neo4j的REST接口进行数据操作,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联-专业网站定制、快速模板网站建设、高性价比滨州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式滨州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖滨州地区。费用合理售后完善,10多年实体公司更值得信赖。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接口进行数据操作”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。