现在的位置: 首页 > 数据库 > 正文

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

2020年07月02日 数据库 ⁄ 共 2016字 ⁄ 字号 评论关闭

  Neo4j是目前最热门的图数据库之一,图数据库以计算机图结构为基础,擅长处理复杂的数据关系。比如我们常见的社交网络中的人与人的关系图。下面学步园小编来讲解下怎样使用PHP客户端通过Neo4j的REST接口进行数据操作?

  怎样使用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接口进行数据操作”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.