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

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-02-18 08:38:17
original
586 Les gens l'ont consulté

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:

MATCH (user:User {name:'Hannah Hilpert'})-[r:FOLLOWS]->(follower)
RETURN user, follower
Copier après la connexion

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:

{
  "require": {
    "neoxygen/neoclient":"~2.1"
  }
}
Copier après la connexion

Configurez la connexion:

use Neoxygen\NeoClient\ClientBuilder;

$client = ClientBuilder::create()
  ->addConnection('default', 'http', 'localhost', 7474)
  ->build();
Copier après la connexion

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

<?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();
Copier après la connexion

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

$client = ClientBuilder::create()
  ->addConnection('default', 'http', 'localhost', 7474)
  ->setAutoFormatResponse(true)
  ->build();
Copier après la connexion

Construire un exemple d'application

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

CREATE (user:User {name:'Kenneth'}) RETURN user
Copier après la connexion

Discover Graph Databases with Neo4j and PHP

Code PHP pour créer un utilisateur:

$query = 'CREATE (user:User {name:"Kenneth"}) RETURN user';
$result = $client->sendCypherQuery($query)->getResult();
$user = $result->getSingleNode();
$name = $user->getProperty('name');
Copier après la connexion

Création d'une relation:

$query = 'MATCH (user1:User {name:{name1}}), (user2:User {name:{name2}}) CREATE (user1)-[:FOLLOWS]->(user2)';
$params = ['name1' => 'Kenneth', 'name2' => 'Maxime'];
$client->sendCypherQuery($query, $params);
Copier après la connexion

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

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
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal