0

現在、私はまだ Neo4J グラフ データベースを学んでおり、現在の RDBMS をグラフ データベースに移行する予定です。そのため、Neoxygen-NeoClient が答えであることがわかるまで、PHP/Codeigniter で Neo4J を接続する方法の方法論を探していました。

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

したがって、そのクエリの結果は表示されず、Neo4J から返されたクエリを PHP で表示する方法を教えてください。

更新しました

ここでアプリケーションを実行している例からテストしようとしていました 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

前にありがとう

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

Neo4j と NeoClient を使用した PHP について Sitepoint に 3 つの記事を書きました。

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

アップデート

少し前に行ったNeo4j-MovieDB-Repositoryを確認し、ローカルでテストする方法について README を更新しました。

最新の質問について:

  1. 適切なルート パスが定義された状態で Web サーバーを実行していることを確認してください。現在のディレクトリが $myrepo/web のphp -S localhost:8000場合は問題ありません。親ディレクトリにいる場合は、引数として Web インデックス ルートを指定する必要があります。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 に答える