問題タブ [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.
neo4j - WriteBatch で get または create を使用する py2neo
Neo4j と py2neo を使い始めたばかりです。neo4j データベースの一括データ読み込みのために、py2neo で利用可能なバッチ機能を試しています。
基本的なレベルでは、py2neo の WriteBatch を使用して、2 つのノードを作成し (または既に存在する場合はそれらを取得し)、デフォルトの重みでそれらの間の関係を作成します (または関係が既に存在する場合は重みを増やします)。
このドキュメントでは、2 つの新しいノードを作成し、それらの間の関係を形成する方法のみを説明しています。私は次の行に沿って何かを調べています:
ただし、これは次のエラーで失敗します。
SystemError: {u'stacktrace': [u'org.neo4j.server.rest.batch.NonStreamingBatchOperations.invoke(NonStreamingBatchOperations.java:63)', u'org.neo4j.server.rest.batch.BatchOperations.performRequest(BatchOperations .java:178)'、u'org.neo4j.server.rest.batch.BatchOperations.parseAndPerform(BatchOperations.java:149)'、u'org.neo4j.server.rest.batch.NonStreamingBatchOperations.performBatchJobs(NonStreamingBatchOperations.java :48)'、u'org.neo4j.server.rest.web.BatchOperationService.batchProcess(BatchOperationService.java:117)'、u'org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:71) )', u'java.lang.reflect.Method.invoke(Method.java:616)'], u'message': u'{\n "メッセージ" : "入力文字列の場合: \"{0}\" "、\n"exception": "BadInputException",\n "stacktrace": [ "org.neo4j.server.rest.web.RestfulGraphDatabase.extractNodeId(RestfulGraphDatabase.java:162)", "org.neo4j.server.rest.web.RestfulGraphDatabase. extractNodeIdOrNull(RestfulGraphDatabase.java:151)"、"org.neo4j.server.rest.web.RestfulGraphDatabase.addToRelationshipIndex(RestfulGraphDatabase.java:813)"、"java.lang.reflect.Method.invoke(Method.java:616) "、"org.neo4j.server.web.Jetty6WebServer.invokeDirectly(Jetty6WebServer.java:273)"、"org.neo4j.server.rest.batch.NonStreamingBatchOperations.invoke(NonStreamingBatchOperations.java:55)"、"org.neo4j .server.rest.batch.BatchOperations.performRequest(BatchOperations.java:178)"、"org.neo4j.server.rest.batch.BatchOperations.parseAndPerform(BatchOperations.java:149)", "org.neo4j.server.rest.batch.NonStreamingBatchOperations.performBatchJobs(NonStreamingBatchOperations.java:48)", "org.neo4j.server.rest.web.BatchOperationService.batchProcess(BatchOperationService.java:117)", "org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:71)"、"java.lang.reflect.Method.invoke(Method.java:616)" ]\n}'、u'例外': u'BatchOperationFailedException'}lang.reflect.Method.invoke(Method.java:616)" ]\n}', u'exception': u'BatchOperationFailedException'}lang.reflect.Method.invoke(Method.java:616)" ]\n}', u'exception': u'BatchOperationFailedException'}
「Bad Input Exception」に基づいて、start_node および end_node 引数に問題があると確信しています。基本的には、以前の get_or_create ノードと関係を参照したいと思います。バッチでこれらをどのように参照しますか?
更新: 多くの実験の後、このエラーを再現する可能な方法を絞り込みました - get_or_create のノードのいずれかがグラフに既に存在する場合、バッチ操作は既存のノードに対応するインデックスで不正な入力エラーで失敗します. また、実行した内容を正確に表示するようにコードを更新しました。このコードを初めて実行すると成功します (両方のノードがグラフに存在しません)。再度実行すると失敗します。
py2neo バージョン: 1.5
neo4j バージョン: 1.8.2
neo4j - py2neo はインデックス付きノードの関係を作成できませんか?
私はpy2neo 1.5.1とneo4j 1.9.1を使用しています。私のテストに基づいて、次のコードは create Relationship 行が原因で多くのエラーをスローします。誰でも理由を説明できますか?
neo4j - py2neo の関係タイプ
py2neoでサイファークエリを使用して関係のタイプを取得するにはどうすればよいですか? 動作するこのコードがあります。
このようにして、入力ノード (1) に接続されているノードを出力できます。
しかし、私が望むのは、これらのノードが持つ関係のタイプを出力することです。
例えば:
私が試した(そして失敗した)ことは次のとおりです。
どうすればpy2neoでこれを行うことができますか?
python - cypher から返されたリストのコレクションを解析するには?
python/py2neo を使用して、以下を含む暗号クエリを実行します
Web コンソールと py2neo の両方で、次のような結果が返されます。
( Web コンソール""
の代わりに)u''
JSONのようには見えません。u'List()'
、引用符で囲まれていない文字列と科学表記法があります。
返されたリストのコレクションをどのように解析できますか?
python - py2neo - Neo4j - システム エラー - バッチ ノード/関係の作成
ノードと関係をバッチ作成しようとしています - バッチ作成が失敗しています - 投稿の最後にトレースバック
ノードのサブセットが小さいコード関数に注意してください - 大量のリレーションシップに入ると失敗します。これが発生している限界が不明です。
- ulimit を 40,000 オープン ファイルを超えて増やす必要があるかどうか疑問に思っています
- バッチ作成の実行中に REST API で Xstream の問題が発生した場所を読んでください - 問題セットがスペクトルの py2neo エンドにあるのか、Neo4j サーバーのチューニング/構成にあるのか、またはスペクトルの Python エンドにあるのかは不明です。ガイダンスをいただければ幸いです。
データ セット内の 1 つのクラスターは、700 以上のノードのうち約 625525 の関係になります。関係の合計は 100 万以上になります - x86_64 を搭載した Apple Macbook Pro Retina を利用 - Ubuntu 13.04、SSD、8GB メモリ。
- Neo4j: auto_indexing と auto_relationships を ON に設定
- Python Panadas DataFrame.groupby() を介してクラスター化/グループ化されたノード
- ノード: 3 つのプロパティを含む
- リレーションシップ プロパティ: 1 -> IN & Out リレーションシップが作成されました
- ulimit を 40,000 ファイルに設定して開く
コード
https://github.com/alienone/OSINT/blob/master/MANDIANTAPT/spitball.py
- オペレーティング システム: Ubuntu 13.04
- Python バージョン: 2.7.5
- py2neo バージョン: 1.5.1
- Java バージョン: 1.7.0_25-b15
- Neo4j バージョン: コミュニティ版 1.9.2
トレースバック
トレースバック (最後の最後の呼び出し): ファイル "/home/alienone/Programming/Python/OSINT/MANDIANTAPT/spitball.py"、63 行目、main() ファイル "/home/alienone/Programming/Python/OSINT/MANDIANTAPT/ spitball.py"、59 行目、メインの graph_db.create(*sorted_nodes) ファイル "/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/neo4j.py "、420 行目、create return batch.submit() ファイル内"/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/neo4j.py"、2123 行目、self._submit()ファイル「/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/neo4j.py」の2092行目の応答の送信身分証明書を提出する、 enumerate(self.requests) ファイル内のリクエスト "/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/rest.py"、428 行目、_send 内で return self._client().send(request) ファイル "/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/site-packages/py2neo/rest.py"、365 行目、送信中return Response(request.graph_db, rs.status, request.uri, rs.getheader("Location", None), rs_body) ファイル "/home/alienone/.pythonbrew/pythons/Python-2.7.5/lib/python2. 7/site-packages/py2neo/rest.py」、279行目、init raise SystemError(body) SystemError: None
プロセスは終了コード 1 で終了しました
python - py2neo でパスをバッチ作成または取得する
Nigel Small がここで説明したように、neo4j で日付/時刻ツリーを作成しようとしています。特定の期間、すべての日付を事前入力したいので、複数の get_or_create_path() を一度に実行したいと考えています。ただし、この関数のバッチ バージョン、または「サイファー クエリの実行」に相当するバッチを見つけることができないようです。それらをすべて個別に実行する必要がある場合、ランタイムに大量の負荷がかかります。
このプロセスをバッチ処理する方法はありますか? うまくいけば、私は愚かで、明らかな機能を見逃しているだけです! それが実行中のサイファー クエリのバッチ バージョンであるか、get_or_create_path() のバッチ バージョンであるかは気にしません。
よろしくお願いします。
ルイ
neo4j - 重複ノードを作成するpy2neo create関数
下院議員に関する情報を含む Neo4j データベースがあります。私が抱えている問題は、空席があるかどうかです。これが発生した場合、「Congressmen」インデックスで同じ key:value を使用しています。py2neo のドキュメントには add 関数がべき等であると記載されているため、以下のコードを試しました。
コードを 3 回実行した後にインターフェイスを確認すると、ノードが重複しています。
ノードの重複を防ぎ、同じキー/値を使用してインデックスを作成することはできますか?
neo4j - Py2neo - ID でノードを取得すると、実行時にエラーがスローされますか?
プロジェクトで python neo4j レスト クライアントを使用していましたが、Py2neo に切り替えました。
ID でデータベースからノードを取得しようとしましたが、次のエラーが発生しました。
get_node
関数を使用しました( http://nigelsmall.com/_api/py2neo/neo4j.html#py2neo.neo4j.GraphDatabaseService.get_node)
私は何か間違ったことをしていますか、それともドキュメントを更新する必要がありますか?
ありがとう
neo4j - py2neo: 複数のキーと値のペアを使用してインデックス付きノードをバッチ作成する
と
インデックス付きノードをバッチで簡単に作成できます。
しかし、バッチでノードを作成し、複数のキーと値のペアを同時に追加するにはどうすればよいでしょうか? または、ノードを複数のインデックスに追加しますか?
私が考えた 1 つのアイデアは、最初にノードを作成し、次にそれらを 2 番目のバッチでインデックスに追加することです。
しかし、これは複雑なようです。Py2neo はとても素晴らしいので、もっと簡単な方法があるはずです。
ナイジェルの答えに基づいて、ノードのリストについてこれを試しました:
一部のノードは最終的にインデックスに登録されますが、すべてではありません。('key:value-from-n") のインデックスを検索すると、ノードが返されますが、正しいノードは返されません。ノードをインデックスに追加しようとしたときに、ノードの「内部」ID にアクセスするにはどうすればよいですか?
py2neo の (現在テスト中の) バージョン 1.6.0 を試してみましたが、動作します!
ノードを参照するためにバッチ内で使用できる要求オブジェクトを返すようになりました。
python - Py2neo - writebatch で関係を作成する
py2neo を使用して、Neo4j データベースにデータをダンプします。
これとともに
同じバッチ内で新しいノードを使用して関係を作成できます。
ただし、このようなバッチの前に既に作成されているノードとの関係を作成しようとすると:
失敗します*。以前に作成されたノードへのバッチ内の関係を持つノードを作成するにはどうすればよいでしょうか?
py2neo 1.5.1 と Neo4j 1.9.2 の使用
ありがとう
- エラーメッセージ :
SystemError: {u'stacktrace': [u'org.neo4j.server.rest.batch.NonStreamingBatchOperations.invoke(NonStreamingBatchOperations.java:63)', u'org.neo4j.server.rest.batch.BatchOperations.performRequest(BatchOperations .java:188)'、u'org.neo4j.server.rest.batch.BatchOperations.parseAndPerform(BatchOperations.java:159)'、u'org.neo4j.server.rest.batch.NonStreamingBatchOperations.performBatchJobs(NonStreamingBatchOperations.java :48)'、u'org.neo4j.server.rest.web.BatchOperationService.batchProcess(BatchOperationService.java:117)'、u'org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:72 )'、u'java.lang.reflect.Method.invoke(Method.java:606)'、u'org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)']、u'メッセージ':u'{\n "メッセージ": "入力文字列: \"5078\')]}\"",\n "例外": "BadInputException",\n "フルネーム": "org.neo4j.server.rest .repr.BadInputException",\n "stacktrace" : [ "org.neo4j.server.rest.web.RestfulGraphDatabase.extractNodeId(RestfulGraphDatabase.java:171)", "org.neo4j.server.rest.web.RestfulGraphDatabase.createRelationship (RestfulGraphDatabase.java:410)"、"java.lang.reflect.Method.invoke(Method.java:606)"、"org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)" 、「org.neo4j.server.web.Jetty6WebServer.invokeDirectly(Jetty6WebServer.java:302)」、「org.neo4j.server.rest.batch.NonStreamingBatchOperations.invoke(NonStreamingBatchOperations.java:55)」、「org.neo4j.server.rest.batch.BatchOperations.performRequest(BatchOperations.java:188)」、「org.neo4j.server.rest.batch.BatchOperations.parseAndPerform(BatchOperations.java:159)」、「org.neo4j.server.rest. batch.NonStreamingBatchOperations.performBatchJobs(NonStreamingBatchOperations.java:48)"、"org.neo4j.server.rest.web.BatchOperationService.batchProcess(BatchOperationService.java:117)"、"org.neo4j.server.rest.web.BatchOperationService. performBatchOperations(BatchOperationService.java:72)"、"java.lang.reflect.Method.invoke(Method.java:606)"、"org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112) " ],\n "cause" : {\n "message" : "入力文字列: \"5078\')]}\""",\n "exception" : "NumberFormatException",\n "stacktrace" : [ "java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)", "java.lang.Long.parseLong(Long.java:441)", "java.lang.Long.parseLong( Long.java:483)"、"org.neo4j.server.rest.web.RestfulGraphDatabase.extractNodeId(RestfulGraphDatabase.java:167)"、"org.neo4j.server.rest.web.RestfulGraphDatabase.createRelationship(RestfulGraphDatabase.java: 410)"、"java.lang.reflect.Method.invoke(Method.java:606)"、"org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)"、"org.neo4j .server.web.Jetty6WebServer.invokeDirectly(Jetty6WebServer.java:302)"、"org.neo4j.server.rest.batch.NonStreamingBatchOperations.invoke(NonStreamingBatchOperations.java:55)"、"org.neo4j.server.rest.batch .BatchOperations。performRequest(BatchOperations.java:188)"、"org.neo4j.server.rest.batch.BatchOperations.parseAndPerform(BatchOperations.java:159)"、"org.neo4j.server.rest.batch.NonStreamingBatchOperations.performBatchJobs(NonStreamingBatchOperations. java:48)"、"org.neo4j.server.rest.web.BatchOperationService.batchProcess(BatchOperationService.java:117)"、"org.neo4j.server.rest.web.BatchOperationService.performBatchOperations(BatchOperationService.java:72)" ", "java.lang.reflect.Method.invoke(Method.java:606)", "org.neo4j.server.rest.security.SecurityFilter.doFilter(SecurityFilter.java:112)" ],\n "フルネーム" : "java.lang.NumberFormatException"\n }\n}', u'fullname': u'org.neo4j.server.rest.domain.BatchOperationFailedException', u'exception': u'BatchOperationFailedException'}