0

目前,我还在学习 Neo4J Graph Database,并计划将我当前的 RDBMS 迁移到 Graph Database 中。所以我一直在寻找如何在 PHP/Codeigniter 中连接 Neo4J 的方法,直到我发现 Neoxygen-NeoClient 是答案。

在我使用 Composer 安装它之后,我计划对其进行测试。我创建了一个名为connection.php的新页面并放置在根文件夹中。不幸的是,现在我在我的本地主机中从 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

然后我按照您的安装步骤然后在本地主机上运行它但仍然无法显示来自 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

之前谢谢

4

1 回答 1

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');

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

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

更新

我检查了我不久前做的Neo4j-MovieDB-Repository,并更新了 README 以说明如何在本地测试它。

对于您更新的问题:

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

  2. urlhttp://localhost:8000/importdb是为了加载数据库中的数据,否则他将找不到电影和演员。

如果您仍然有错误或问题,请打开单独的 SO 问题或在 Github 上触发问题https://github.com/ikwattro/neo4j-moviedb-example/issues

于 2015-06-01T13:06:53.577 回答