Maison >développement back-end >tutoriel php >Découvrez les bases de données de graphiques avec Neo4j et PHP

Découvrez les bases de données de graphiques avec Neo4j et PHP

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌original
2025-02-18 08:38:17601parcourir

neo4j et php: une combinaison puissante pour les bases de données graphiques

NEO4J, une base de données de graphiques leader, excelle à gérer des données fortement interconnectées, ce qui la rend idéale pour les applications impliquant des graphiques commerciaux, sociaux, de connaissances, d'intérêt et de médias. Cet article explore Neo4j et démontre son utilisation avec PHP. Un article ultérieur détaillera la construction d'une application graphique alimentée par Silex.

Les bases de données de graphiques sont cruciales pour les entreprises traitant des relations complexes. La flexibilité du modèle de graphique et le stockage et la récupération des bases de données des graphiques en font une solution puissante. La capacité éprouvée de NEO4J à gérer des ensembles de données massifs et interconnectés en fait un choix supérieur. Sa valeur est évidente dans les applications telles que l'amélioration des expériences des clients et la facilitation de l'édition de carte complexe.

Une introduction rapide aux bases de données graphiques et neo4j

Un graphique se compose de nœuds (entités) liés par relations . Dans le modèle de graphique de la propriété, les nœuds et les relations sont étiquetés et peuvent avoir des propriétés.

Discover Graph Databases with Neo4j and PHP

Image via Wikipedia

Une base de données de graphiques optimise les opérations sur les données connectées. Les structures de stockage dédiées pour les nœuds et les relations assurent des performances élevées, éliminant le besoin de fonctions de jointure coûteuses pendant l'exécution de la requête.

Considérez une application sociale où les utilisateurs se suivent. Les utilisateurs sont représentés comme des nœuds avec des étiquettes et des propriétés.

Discover Graph Databases with Neo4j and PHP

Les relations, avec les types et les propriétés, définissent les connexions entre les nœuds, l'ajout de sens sémantique aux données.

Discover Graph Databases with Neo4j and PHP

La représentation visuelle de ces données se prête naturellement aux bases de données graphiques.

Discover Graph Databases with Neo4j and PHP

Cypher: Langue de requête de Neo4j

neo4j utilise Cypher, un langage de requête déclaratif mettant l'accent sur la lisibilité et l'expressivité. Cypher se concentre sur ce que récupérer, pas comment . Les clauses clés comprennent:

  • MATCH: trouve des motifs de graphe.
  • WHERE: filtre les résultats.
  • RETURN: Spécifie le format de sortie.
  • CREATE: crée des nœuds et des relations.
  • MERGE: correspond aux modèles existants ou en crée de nouveaux.

Cypher utilise des parenthèses pour les nœuds (par exemple, (m:Movie)) et les flèches pour les relations (par exemple, --> ou -[ :LOVES ]->).

une requête pour récupérer Hannah Hilpert et ses disciples:

<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 et php

NEO4J s'exécute en tant que serveur avec une API HTTP accessible pour interroger et manipuler les données. Vous pouvez télécharger Neo4j depuis https://www.php.cn/link/25989f1da5598dd89e7134affeca8697 ou utiliser un service comme GraphenedB. Le navigateur NEO4J ( https://www.php.cn/link/0806a60e2e5466094ab2652bef28a251 ) fournit une interface visuelle.

Composants de néoxygène

NEOXYGEN propose des composants PHP open source pour interagir avec Neo4j. NeoClient fournit un client robuste pour l'API NEO4J HTTP.

Installation et configuration

Ajoutez la dépendance neoclient à votre composer.json:

<code class="language-json">{
  "require": {
    "neoxygen/neoclient":"~2.1"
  }
}</code>

Configurez la connexion:

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

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

Pour GraphenedB, utilisez une connexion sécurisée:

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

Activer la mise en forme automatique de la réponse:

<code class="language-php">$client = ClientBuilder::create()
  ->addConnection('default', 'http', 'localhost', 7474)
  ->setAutoFormatResponse(true)
  ->build();</code>

Construire un exemple d'application

Créons les utilisateurs et FOLLOWS relations. A CREATE requête:

<code class="language-cypher">CREATE (user:User {name:'Kenneth'}) RETURN user</code>

Discover Graph Databases with Neo4j and PHP

Code PHP pour créer un utilisateur:

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

Création d'une relation:

<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

Utilisation de Graphgen pour créer plusieurs utilisateurs et les relations simplifient le processus. Importez le graphique généré dans votre base de données.

Discover Graph Databases with Neo4j and PHP

une requête Cypher pour les suggestions d'amitié:

<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

Conclusion

Ce message a introduit des bases de données de graphiques, Neo4j et Cypher, montrant comment utiliser NEO4J avec PHP. Le prochain article créera une application SILEX complète. Les FAQ fournies offrent plus de détails et de meilleures pratiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn