問題タブ [neo4jphp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
228 参照

neo4j - トランザクション内の Neo4j および Php ハンドル カウンター

シナリオは次のようになります。

という 1 つのノードを作成しますcounter node。初期値は 0 で、ユーザーが自分の Web サイトでアカウントを作成すると増加します。

したがって、これを操作するには 3 つの操作があります。

counter node値の読み取り
php でいくつかのロジックを実行します。ここではカウンタノードの前の値に +1 のように カウンタノード
の新しい値を書き込みます

問題は、2 人以上のユーザーがまったく同じ時間に来て、そのような状態を作り出している場合です。

最初のユーザーがカウンター node に新しい値を書き込む前に、2 番目のユーザーによって読み取られています。したがって、これにより、「カウンターノード」の値が不安定な状態になります。

あなたが私が意味したことを理解したと思います..

解決策はありますか??

私はneo4j 1.9.5とphpを使用しています

Phpジャデル:

https://github.com/jadell/Neo4jPHP </p>

バッチ処理について聞いたことがありますが、それが機能するかどうかはわかりません。解決策があれば、短い例を教えてください。

ありがとうアミット・アガルワル

0 投票する
2 に答える
141 参照

neo4j - Neo4j PHP ウィルテ ロックの取得

大きなトラブルに沈み、

誰でも教えてもらえますか、どうすればサイファーを介して書き込みロックを取得できますか。注:私はREST APIを使用するので、私のサイファーはPHPになります。

編集済み:シナリオ:

Neo4j REST サーバーと PHP を使用してアクセスしています。

これで、新しいユーザー ID を生成する「counter-node」というノードを作成しました。ロジックは、前の値に 1 を加算するだけです。

2 人のユーザーが同時に来ている場合、最初のユーザーは 'counter-node' 値を読み取りますが、それを 1 に更新する前に、2 番目のユーザーはそれを読み取ります。したがって、「counter-node」の値は期待どおりではありません。

任意のヘルプ

0 投票する
1 に答える
1674 参照

transactions - neo4jデータベースを参照して、トランザクションは何を意味しますか

定期取引と少し混乱しました。トランザクション A に 2 つのコマンド C1 と C2 があり、トランザクション B にも同じコマンドがあるとします。両方のトランザクションが同時に発生した場合、これらの観察は正しいですか?

  1. トランザクション A C1 および C2 のすべてのコマンドが最初に実行され (A が最初に入ると仮定)、次にトランザクション B のコマンドのみが実行されます。

  2. トランザクション A または B の任意のコマンドを実行できますが、トランザクションのいずれかのコマンドのいずれかが失敗した場合、そのトランザクションはロールバックされます。

  3. 2 番目のケースが true の場合、トランザクションではデフォルトで、完了するまでリソースをロックしません

  4. 最初のケースが true の場合、デフォルトでは、トランザクションは完了するまでリソースのロックを保持します。

ありがとう

アミット・アガルワル

0 投票する
1 に答える
102 参照

php - Everyman\Neo4j\Exception を解析する方法

Everyman\Neo4j\Exception を解析する最良の方法は何ですか?

getMessage() メソッドはかなり長い文字列を返しますが、私が興味があるのは

文字列の一部。

0 投票する
1 に答える
119 参照

rest - neo4j FT インデックス クエリで上位 100 件の一致結果のみを取得する方法

neo4j FT インデックス クエリで上位 100 件の一致結果のみを取得する方法。一般的な検索では、インデックスが数千のノードに一致すると確信していますが、上位 100 の最高スコアの一致を言うだけで済みます。これを実現するには、どの構成設定またはクエリ コンテキストを設定する必要がありますか。暗号なしでREST APIでこれがどのように可能ですか。これらの上位 100 件の全文一致を取得するには、cypher が必要です。助けてくれてありがとう!

0 投票する
0 に答える
515 参照

neo4j - データ挿入時の Neo4j 例外

スクリプトを使用して大量のデータを Neo4j に挿入しようとしています。しばらくすると、スクリプトは次の例外で中断します。

同じクエリがコンソールから機能し、例外が発生した同じポイントからスクリプトを再起動すると、再び失敗するまでしばらくの間再び機能します。例外をキャッチしてスクリプトを数秒間スリープさせても、スクリプトは壊れません。

ここで何が起こっているのかについて何か提案はありますか?

更新: サンプル クエリを追加しました

0 投票する
2 に答える
2527 参照

security - neo4j: 認証 - 暗号クエリの読み取りのみを許可する

私は neo4j 1.9.4 を使用しており、neo4jphp を使用して (公開) Web サイトにグラフに関する情報を表示したいと考えています。一部のデータを取得するために、neo4jphp 内でサイファー クエリを使用します。これらのクエリは明らかにグラフからデータを読み取るだけです。

Web サイトの訪問者がグラフ内のデータを変更できないようにする必要があります。したがって、認証拡張プラグインをセットアップし、そこに記載されているように2 人のユーザー (1 つは読み取り専用の「RO」アクセス権、もう 1 つは読み取り/書き込みの「RW」アクセス権) を作成しました。ただし、neo4jphp 内の暗号クエリは、RW 権限を持つユーザーに対してのみ機能し、RO 権限を持つユーザーに対しては機能しません。

http://docs.neo4j.org/chunked/stable/security-server.html#_security_in_depthでneo4jを保護する方法がかなり説明されていることは知っていますが、その方法がまったくわかりません。特に「arbitrary_code_execution」のセクションは面白そうですが、どう活用すればいいのかわかりません。

Web サーバーから暗号クエリの読み取りを実行できるようにするにはどうすればよいですか? ところで: Web サーバー (結果を表示するため) と neo4j は別のマシンで実行されています。

助けていただければ幸いです、ありがとう!

編集:私のシナリオは実際にはそれほど複雑ではないので、そのための解決策が必要だと確信しています.localhostからはすべてのアクセス(読み書き)が許可されますが、リモートWebサーバーからのアクセスはグラフからの読み取りに制限されます. どうすればそれを達成できますか?それが不可能な場合: リモート Web サーバーからのアクセスを、ユーザーが一部のパラメーターのみを指定できる事前定義された (サイファー) クエリに制限するにはどうすればよいですか?

0 投票する
1 に答える
519 参照

performance - Neo4j 1.9.4 (REST サーバー、CYPHER) のパフォーマンスの問題

私は Neo4j 1.9.4 を 24 コア 24Gb RAM (centos) マシンにインストールしており、ほとんどのクエリで CPU 使用率のスパイクが 200% になり、同時リクエストはほとんどありません。

ドメイン:

3 ~ 30 個のテキスト/配列プロパティを持ついくつかのタイプのノード (プロファイル) と、少なくとも 3 つのプロパティを持つ 36 の関係タイプがある、ある種のソーシャル アプリケーション。現在、ほとんどのノードには 300 ~ 500 の関係があります。

現在のデータセットのフットプリント (コンソールから):

私見は本当に小さいです。ほとんどのクエリは次のようになります (多かれ少なかれ WITH .. MATCH .. ステートメントがあり、可変長の関係を持つクエリはほとんどありませんが、多くの場合高速です):

1 秒から 3 秒 (最初の実行の場合) および 1 秒から 70 ミリ秒 (連続実行の場合、クエリによって異なります) で実行され、インプレッションごとに約 5 ~ 10 のクエリが実行されます。もう1つの興味深い動作は、ローカルマシンでコンソール(neo4j)からクエリを何度も連続して実行しようとすると(Ctrl + Enterを数秒間押すだけです)、実行時間はほぼ一定ですが、サーバーで実行すると指数関数的に遅くなり、どういうわけか私の問題に関連していると思います。

問題:

したがって、私の問題は、neo4jが非常にCPU貪欲であることです(24コアマシンの場合、問題ではないかもしれませんが、小さなプロジェクトでは明らかにやり過ぎです)。初めて AWS EC2 m1.large インスタンスを使用しましたが、全体的にパフォーマンスが悪く、テスト中、CPU は常に 100% を超えていました。

設定の関連部分:

注:すべてのメモリ関連のパラメーターがHIGHで機能しない構成を既に試しました(まったく変更はありません)。

質問:

どこを掘る?構成?図式?クエリ?私は何を間違っていますか?

詳細情報(ログ、構成)が必要な場合は、お問い合わせください;)