溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用PHP客戶端通過Neo4j的REST接口進行數(shù)據(jù)操作

發(fā)布時間:2021-09-23 14:40:06 來源:億速云 閱讀:122 作者:小新 欄目:數(shù)據(jù)庫

這篇文章將為大家詳細講解有關(guān)如何使用PHP客戶端通過Neo4j的REST接口進行數(shù)據(jù)操作,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

  Neo4j是目前最熱門的圖數(shù)據(jù)庫之一,圖數(shù)據(jù)庫以計算機圖結(jié)構(gòu)為基礎(chǔ),擅長處理復(fù)雜的數(shù)據(jù)關(guān)系。比如我們常見的社交網(wǎng)絡(luò)中的人與人的關(guān)系圖。

  如何使用PHP客戶端通過Neo4j的REST接口進行數(shù)據(jù)操作

  我們需要用上面的復(fù)雜SQL語句才能獲取到和KevinBacon一起演出過的演員名單。

  如果我們需要獲取一個與和KevinBacon一起演出過的人一起演出過的演員名單(真拗口)就更麻煩了,再試想多一層,與(與(與KevinBacon一起演出過的演員)一起演出過的演員)一演出過的演員。那幾乎是不可完成的任務(wù)了。

  下面我們直接使用Neo4j的PHP客戶端來構(gòu)建圖譜:

  $client=newClient(newTransport('localhost',7474));

  //構(gòu)建演員節(jié)點

  $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接口進行數(shù)據(jù)操作

  //構(gòu)建電影節(jié)點

  $matrix=newNode($client);

  $matrix->setProperty('title','TheMatrix')->save();

  $higherLearning=newNode($client);

  $higherLearning->setProperty('title','HigherLearning')->save();

  $mysticRiver=newNode($client);

  $mysticRiver->setProperty('title','MysticRiver')->save();

  //建立關(guān)聯(lián)關(guān)系

  $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();

  然后我們就能夠在已經(jīng)建立好的圖結(jié)構(gòu)上進行數(shù)據(jù)查詢了。第一個查詢是查找所有與KevinBacon距離為12的其它人(演員與演員間的距離只能是2的倍數(shù),因為中間隔著電影)。

  $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相關(guān)的電影:

  echo$laurence->getProperty('name')."wasin:\n";

  $relationships=$laurence->getRelationships('IN');

  foreach($relationshipsas$relationship){

  $movie=$relationship->getEndNode();

  echo"\t".$movie->getProperty('title')."\n";

  }

關(guān)于“如何使用PHP客戶端通過Neo4j的REST接口進行數(shù)據(jù)操作”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI