首頁 >後端開發 >php教程 >發現使用Neo4J和PHP的圖形數據庫

發現使用Neo4J和PHP的圖形數據庫

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原創
2025-02-18 08:38:17580瀏覽

> neo4j和php:圖形數據庫的強大組合

領先的圖形數據庫

neo4j擅長管理高度互連的數據,非常適合涉及業務,社交,知識,興趣和媒體圖的應用程序。 這篇文章探索了Neo4J並證明了其與PHP的使用。隨後的帖子將詳細介紹構建Silex驅動的圖形應用程序。

>

>圖數據庫對於處理複雜關係的公司至關重要。 圖模型的靈活性和圖形數據庫的有效存儲和檢索使它們成為強大的解決方案。 Neo4J具有驗證的處理大規模互連數據集的能力使其成為首選。 在增強客戶體驗和促進複雜地圖編輯等應用中,其價值很明顯。

快速介紹圖數據庫和neo4j>

一個圖由

>節點(實體)組成。 在屬性圖模型中,節點和關係被標記並具有屬性。 通過Wikipedia

圖像 Discover Graph Databases with Neo4j and PHP 圖數據庫優化了連接數據的操作。 節點和關係的專用存儲結構確保高性能,消除了在查詢執行期間對加入操作的需求。

考慮用戶互相關注的社交應用程序。 用戶被表示為帶有標籤和屬性的節點。 >

與類型和屬性相關的關係,定義了節點之間的連接,在數據中添加了語義含義。

Discover Graph Databases with Neo4j and PHP 此數據的視覺表示自然地將自己借給圖數據庫。

Discover Graph Databases with Neo4j and PHP cypher:neo4j的查詢語言

Neo4J使用Cypher,這是一種強調可讀性和表現力的聲明性查詢語言。 Cypher專注於要檢索的內容,而不是如何檢索。 關鍵子句包括:

Discover Graph Databases with Neo4j and PHP

:查找圖形模式。

:過濾結果。

:指定輸出格式。 > :創建節點和關係。

>
  • :匹配現有模式或創建新模式。 MATCH>
  • cypher使用括號用於節點(例如,WHERE)和箭頭(例如
    <code class="language-cypher">MATCH (user:User {name:'Hannah Hilpert'})-[r:FOLLOWS]->(follower)
    RETURN user, follower</code>

    Discover Graph Databases with Neo4j and PHP

    > neo4j和php

    Neo4j > https://www.php.cn/link/link/25989f1da5598dd89e7134134affeca8697 下載neo4j。 Neo4J瀏覽器(https://www.php.cn/link/0806A60E2E2E5466094AB2652BEF28A251)提供了視覺界面。 > neoxygen組件

Neoxygen提供與Neo4J相互作用的開源PHP組件。 為neo4j http api提供了強大的客戶端。

安裝和配置

NeoClient

>將

依賴性添加到您的>:>

配置連接:neoclient composer.json

用於GraphenendB,使用安全連接:
<code class="language-json">{
  "require": {
    "neoxygen/neoclient":"~2.1"
  }
}</code>

啟用自動響應格式:
<code class="language-php">use Neoxygen\NeoClient\ClientBuilder;

$client = ClientBuilder::create()
  ->addConnection('default', 'http', 'localhost', 7474)
  ->build();</code>

<code class="language-php"><?php
use Neoxygen\NeoClient\ClientBuilder;

$connUrl = parse_url('http://master.sb02.stations.graphenedb.com:24789/db/data/');
$user = 'master';
$pwd = 's3cr3tP@ssw0rd';

$client = ClientBuilder::create()
  ->addConnection('default', $connUrl['scheme'], $connUrl['host'], $connUrl['port'], true, $user, $password)
  ->build();</code>
構建示例應用程序

<code class="language-php">$client = ClientBuilder::create()
  ->addConnection('default', 'http', 'localhost', 7474)
  ->setAutoFormatResponse(true)
  ->build();</code>
>讓我們創建用戶和

>關係。 aQUERY:

FOLLOWS CREATE

php代碼創建一個用戶:
<code class="language-cypher">CREATE (user:User {name:'Kenneth'}) RETURN user</code>

Discover Graph Databases with Neo4j and PHP 創建一個關係:

<code class="language-php">$query = 'CREATE (user:User {name:"Kenneth"}) RETURN user';
$result = $client->sendCypherQuery($query)->getResult();
$user = $result->getSingleNode();
$name = $user->getProperty('name');</code>

使用GraphGen創建多個用戶,關係簡化了過程。 將生成的圖導入您的數據庫。
<code class="language-php">$query = 'MATCH (user1:User {name:{name1}}), (user2:User {name:{name2}}) CREATE (user1)-[:FOLLOWS]->(user2)';
$params = ['name1' => 'Kenneth', 'name2' => 'Maxime'];
$client->sendCypherQuery($query, $params);</code>

Discover Graph Databases with Neo4j and PHP

>友誼建議的密碼查詢:

Discover Graph Databases with Neo4j and PHP

<code class="language-cypher">MATCH (user:User {firstname: {firstname}})-[:FOLLOWS]->(followed)-[:FOLLOWS]->(suggestion)
WHERE user <> suggestion
  AND NOT (user)-[:FOLLOWS]->(suggestion)
RETURN user, suggestion, count(*) as occurrence
ORDER BY occurrence DESC
LIMIT 10</code>
結論

Discover Graph Databases with Neo4j and PHP

>這篇文章介紹了圖形數據庫,Neo4J和Cypher,顯示瞭如何將Neo4J與PHP一起使用。 下一篇文章將構建一個完整的Silex應用程序。 提供的常見問題解答提供了更多的詳細信息和最佳實踐。

以上是發現使用Neo4J和PHP的圖形數據庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn