目前,我仍在学习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
之前谢谢
答案 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以及如何在本地测试它。
有关更新的问题:
确保运行定义了良好根路径的网络服务器,因此如果您当前的目录是$ myrepo / web,那么php -S localhost:8000
就可以了,如果您在父目录中,则需要提供Web索引根作为参数php -S localhost:8000 -t web/
创建网址http://localhost:8000/importdb
是为了在数据库中加载数据,否则他将找不到电影和演员。
如果您仍有错误或问题,请在Github https://github.com/ikwattro/neo4j-moviedb-example/issues上单独提出问题或触发问题