問題タブ [py2neo]

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 投票する
1 に答える
459 参照

python - IterableCypherResultsの反復中にpy2neoでutf-8に変換しない

py2neo を使用して、neo4j データベースからいくつかの値を取得しようとしています

これはほとんどの場合うまくいきますが、「Hand-Schüller-Christian histiocyte (cell)」のような n.name があると失敗します。

「for record in query_results:」の行でエラーがスローされ、py2neo ソースで次のエラーがスローされます。

それがpy2neoのバグなのか、それとも何か間違っているのかはわかりません。どんな提案も素晴らしいでしょう。

ありがとう

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

python - py2neo クエリでの「ランダムな」SocketError/接続拒否エラー

こんにちは、これが些細なことに終わらないことを願っています。

私のスタックの関連部分は、Gunicorn/Celery、neomodel (0.3.6)、および py2neo (1.5) です。Neo4j のバージョンは 1.9.4 で、0.0.0.0:7474 にバインドされています (これはすべて Linux にあり、Ubuntu 13.04 だと思います)

そのため、私の gunicorn/celery サーバーはほとんどの場合問題ありませんが、たまに次のエラーが発生します。

ご覧のとおり、User.index.get(要求応答の最初の呼び出し) を呼び出すと、ソケット エラーが発生します。時々。ほとんどの場合、問題なく接続されます。このエラーは、neo4j 接続を使用するすべての Flask ビュー/Celery タスクで発生します (実行するだけではありませんUser.index.get;))。

GraphDatabaseServiceこれまでのところ、私が取った手順には、オブジェクトがスレッドごとに作成されていることを確認し、約 30 秒ごとに neo4j サーバーに自動的に再接続 (および認証) するように、neomodel 接続関数にモンキー パッチを適用することが含まれていました。これにより、エラーの頻度が減った可能性がありますが、それでも発生します。

オンラインでエラーを探していると、ほとんどの人が間違ったインターフェイス/IP/ポートに接続しようとしているようです。しかし、私の要求の大部分が通過することを考えると、ここではそうではないように感じます.

何か案は?関連しているとは思いませんが、私のデータベースには 38k の孤立したノードがあるようです。それはおそらく、それ自体で別の質問に値するでしょう。

workers=1編集:追加する必要があります。これは、の代わりに , を使用して gunicorn/celery を実行すると消えるようですworkers=$CPU_N$N_CPU*10どうやらneo4jはデフォルトで接続を処理するように設定されているため、なぜそれが重要なのかわかりません。

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

python - py2neo の使用中にノード間のバッチ関係を作成する際の例外

py2neo を使用してグラフ データベースを作成しました。目的は次のとおりです。

  • 都市ごとに 1 つのノードを作成します。ノードには、都市名とそれに関連付けられた一意の ID が格納されます。
  • 空港ごとに 1 つのノードを作成します。空港ノードには、空港名と一意の ID が格納されます。
  • 空港がその都市にある場合は、都市ノードと空港ノードの間に関係を作成します。

このモジュールを使用して、最初に都市ノードを (正常に) 作成しました。

次に、別の別のモジュールで、空港ノードと、空港ノードと対応する都市ノード間の関係を次のように作成しようとしました。

私が関係を作成している最後から3番目のステートメントは、例外をスローしています:

両方のタイプのノードの uri を印刷しようとしました。彼らの違いは次のとおりです。

出力:

したがって、両方のノードの uris が異なるため、関係が作成されていないと思います。

都市のインデックスなしのノードを返す関数、つまり uri は「index/node/city_index/city_id/」ではなく「node」にする必要があります。

この関係を作成する他の方法はありますか?

必要に応じて、他の情報を提供していただければ幸いです。前もって感謝します!

Neo4j: 1.9.5

py2neo: 1.6.1

0 投票する
3 に答える
658 参照

performance - Neo4J クエリのパフォーマンスが低い

NEO4Jデータベースで「ストレステスト」を行っています。大したことではありませんが、部分的な結果を見ると、このテクノロジがオンライン アプリケーションに適しているかどうか疑問に思います (または、単に Cypher を理解していないだけです)。

最初のテストは、次のようにノードごとに追加することでした

次に、このクエリを使用してパス全体を取得します

m.node_id == 2の場合、クエリには約 100 ミリ秒かかることに注意してください。現在、最大 9000 ノードで、最大 30 秒かかる場合があります。私は専門家ではありませんが、時間がかかりすぎます。9K ノードでこれほど大きな違いが生じるとは思いません。

それで、私は何が欠けていますか?

乾杯(そしてメリークリスマス)

編集:

私はpy2neoを使用しており、クエリのタイミングをこのようにしています:

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

neo4j - 書き込みバッチpy2neo.neo4j.BatchOperationFailedExceptionのpy2neoエラー

neo4j DB のアイテムを更新するために、以下のコードを実行しています。アイテムが存在する場合 (検索はバッチではありません)、その関係をすべて削除し、そのプロパティを更新します。それ以外の場合は、新しいプロパティでノードを作成します。最後に、ノードの必要な関係をすべて作成します。

そして5項目ごとに、私は次のことを行います:

コードは通常 (更新または作成のいずれかで) 機能しますが、特定のデータでは失敗しsubmit()ます。それでも、エラーを特定する方法が見つかりませんでした。トレースバック:

私はpy2neo 1.6.1とneo4j 1.9.2を使用しています

編集

neo4j ログに次のエラーが見つかりました。

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

python - py2neo Cypher トランザクションが失敗する

Py2Neo を介して何百万ものノードをバッチ インポートしようとしています。BatchWriteと のどちらが速いかはわかりませんがcipher.Transaction、バッチを分割する必要があるため、後者が最良の選択肢のように思えました。しかし、単純なトランザクションを実行しようとすると、奇妙なエラーが発生します。

Python コード:

エラー:

私は例外をキャッチしようとしました:

しかし一向に呼ばれない。(もしかして私のミス?)

graph_db.create({"node:" node}) を使用した通常の挿入は機能しますが、非常に遅いです (250 万ノードで 36 時間)。最後の 2 つのレベルをバッチ処理したい (バッチごとに約 100 から 20.000 ノード)

- - 編集 - -

私は Py2Neo 1.6.1、Neo4j 2.0.0 を使用しています。現在 Windows 7 (OSX Mav.、CentOS 6 も)

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

neo4j - py2neoでラベルにインデックスを作成することは可能ですか?

py2neo でラベルにインデックスを作成できるかどうか疑問に思っていましたか? Cypher のように: "CREATE INDEX ON :Person(name)"?

これはNeo4j 2.0で追加されたものだと思うので、py2neoにはまだ実装されていないのでしょうか?

ありがとう