如何使用PHP客户端通过Neo4j的REST接口进行数据操作
创始人
2024-12-19 00:42:44
0次

  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";

  }

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...