現在的位置: 首頁 > 資料庫 > 正文

怎樣使用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技術的優質平台!

抱歉!評論已關閉.