从Neo4J

时间:2015-06-01 07:14:58

标签: php neo4j cypher neoxygen

目前,我仍在学习Neo4J图形数据库,并计划将当前的RDBMS迁移到图形数据库中。所以我正在寻找如何在PHP / Codeigniter中连接Neo4J的方法,直到我发现Neoxygen-NeoClient就是答案。

使用composer安装后,我计划测试它。我创建了一个名为 connection.php 的新页面并放在根文件夹中。不幸的是,我现在遇到一些问题,何时从我的localhost和

中获取Neo4J的数据

以下是connection.php的包含

<?php
require_once 'vendor/autoload.php';
use Neoxygen\NeoClient\ClientBuilder;
$client = ClientBuilder::create()
->addConnection('default', 'http', 'myserver.dev', 7474, true, 'username', 'password')
->build();
$q = 'MATCH (n:Actor) RETURN n.name';
$client->sendCypherQuery($q);
$result = $client->getRows();
echo $result;
?>

因此该查询的结果未显示,我想询问如何在PHP中显示来自Neo4J的返回查询?

更新

我试图在这里测试你运行应用程序的例子 https://github.com/ikwattro/neo4j-neoclient-example

然后我按照你的安装步骤,然后在localhost上运行它 但仍然无法显示来自Neo4J的数据,然后在我检查Web控制台后,我收到了此错误

  

http://localhost/search?q=Matrix无法加载资源:服务器响应状态为404(未找到)   localhost / graph无法加载资源:服务器响应状态为404(未找到)   localhost / search?q = Matrix无法加载资源:服务器响应状态为404(未找到)

所以我猜问题是我在安装作曲家后没有得到图表搜索文件夹,而我只有供应商文件夹

composer install --no-dev --optimize-autoloader

你可以验证一下吗? 如果情况并非如此,请给我一些解决方案来解决这个问题。

您也可以解释一下使用

运行应用程序的意思
http://localhost:8000/import

之前谢谢

1 个答案:

答案 0 :(得分:1)

我是NeoClient的维护者。

首先,如果您需要处理结果,则应激活响应格式化程序:

$client = ClientBuilder::create()
->addConnection('default', 'http', 'myserver.dev', 7474, true, 'username', 'password')
->setAutoFormatResponse(true)
->build();

您现在有多种可能性可以获得结果:

以Neo4j浏览器中的表格格式:

$q = 'MATCH (n:Actor) RETURN n.name';
$result = $client->sendCypherQuery($q)->getResult()->getTableFormat();

或者,如果您想操纵节点和关系对象:

$q = 'MATCH (n:Actor) RETURN n';
$result = $client->sendCypherQuery($q)->getResult();
$nodes = $result->getNodes();
$relationships = $result->getRelationships();

您还可以使用get方法使用标识符:

$q = 'MATCH (n:Actor) RETURN n';
$result = $client->sendCypherQuery($q)->getResult();
$actors = $result->get('n');

我在Sitepoint上写了3篇关于Neo4j和使用NeoClient的PHP的文章,我相信他们可以帮助你:

http://www.sitepoint.com/author/ikwattro/

<强>更新

我检查了我之前做过的Neo4j-MovieDB-Repository,并更新了README以及如何在本地测试它。

有关更新的问题:

  1. 确保运行定义了良好根路径的网络服务器,因此如果您当前的目录是$ myrepo / web,那么php -S localhost:8000就可以了,如果您在父目录中,则需要提供Web索引根作为参数php -S localhost:8000 -t web/

  2. 创建网址http://localhost:8000/importdb是为了在数据库中加载数据,否则他将找不到电影和演员。

  3. 如果您仍有错误或问题,请在Github https://github.com/ikwattro/neo4j-moviedb-example/issues上单独提出问题或触发问题

相关问题