問題タブ [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.
python - py2neo を使用してすべてのノードを反復処理することは可能ですか?
py2neoを使用してneo4jデータベースのすべてのノードを反復処理する方法はありますか?
最初に考えたのは を繰り返すGraphDatabaseService
ことでしたが、うまくいきませんでした。py2neoでそれを行う方法がない場合、別のpythonインターフェースがありますか?
編集:私は今のところ@Nicholasの答えを受け入れていますが、誰かがジェネレータを返す方法を教えてくれれば更新します。
python - py2Neoがpy2neo.rest.NoResponse例外をスローします
私はneo4jデータベースにアクセスするためにpy2neoを使用しています。テキストファイルのデータからグラフを読み込んでいます。
私のデータセットには約100万のノードがあるため、データセット全体をロードするのにかなり長い時間がかかります。その間のどこかで、コードはpy2neo.rest.NoResponseをスローします。コードを数回実行してみました。さまざまな時点で失敗します。エラーにパターンは見当たりません。つまり、ファイル内のデータによるエラーが表示されないか、ファイル内の同じ時点で失敗するわけではありません。これはログファイルからわかります。
エラースタックトレースは次のとおりです。
誰かが同じエラーに遭遇しましたか?解決策を教えてください。
この情報が役立つかどうかはわかりません。私は次のバージョンを使用しています:Python-2.6.6およびpy2neo-1.2.15
python - Pythonを使用してNeo4jで一括追加/挿入を実行する最速の方法は?
Python用のpy2neoを介してRESTAPIを使用すると、Neo4jがノードとリレーションシップ/アーク/エッジを追加するのに時間がかかることがわかりました。これは、各RESTAPI呼び出しが単一の自己完結型トランザクションとして実行されるためであると理解しています。
具体的には、ノード間に関係がある数百のノードのペアを追加するには、ローカルホストで実行して数秒かかります。
Pythonを使用しながらパフォーマンスを大幅に向上させるための最良のアプローチは何ですか?
バルブフローとグレムリンを使用することは、一括挿入トランザクションを構築する方法でしょうか?
ありがとう!
neo4j - py2neoで接続が中止されました
py2neoのチュートリアルサンプルを試しています。インデックスを作成したり、ノードを取得したり、neo4jとのその他の相互作用を取得しようとすると、SocketError:error(10053、'確立された接続がホストマシンのソフトウェアによって中止されました')が発生することがあります。接続がまだpy2neolibsにあるかどうかを検出する方法はありますか、それともクエリの前に常にGraphDatabaseServiceを呼び出す必要がありますか。
python - トランザクションでPythonからneo4J(サーバー)を使用する
現在、Python /フラスコを使用してWebサービスを構築していますが、コアデータ構造は本質的にグラフであるため、neo4jの上にデータレイヤーを構築したいと考えています。その場合、neo4jが提供するさまざまなテクノロジーに少し混乱しています。特に :
私はもともとpy2neoを介してRESTApiを使用することを計画していましたが、トランザクションの欠如は少し問題です。
「組み込みデータベース」neo4jは私の場合にはあまり適していないようです。バッチ分析と1回限りの分析を使用していて、データベースをWebサーバーとは別のサーバーに保存する必要がない場合に便利だと思います。
私はneo4djangoプロジェクトに出くわしましたが、これがトランザクションサポートを提供するかどうかはわかりません(Python用のneo4jのネイティブクライアントがないため)。django自体の外部で使用するのが問題になるかどうか。実際、プロジェクトのドキュメントを見た後、まったく同じ制限があり、トランザクションがないように感じます(ただし、単一の接続タイムアウトでモデルが破損する可能性がある場合、実際のサービスをどのように構築できますか?) 。そのプロジェクトの用途すらわかりません。
誰かが何かをお勧めできますか?私は完全に立ち往生しているように感じます。
ありがとう
neo4j - neo4j でプロパティの一意性を保証するために get_or_create_indexed_node() を使用しても安全ですか? 外部キーとして使用
私はneo4jでpython + py2neoを使用しています。SQLデータベースの自動割り当てレコードIDをneo4jデータベースの外部キーとして割り当てています。
この ID を持つノードがまだ neo データベースに存在しない場合、get_or_create_indexed_node() を使用して一意の ID を持つ新しいノードを作成しています。
...ネオRESTインターフェースのpy2neoのラッピングを使用。これは安全ですか?数回はまだ重複していて、同じ ID を持つ新しいノードが作成されている可能性があると思います。同じインデックスのノード間で id 外部キーの一意性を確保する、これを行うためのより良い方法はありますか?
python - rest.py の py2neo エラー :: httplib.HTTPException がエラーとして:
私はローカル マシンで py2neo を使用しており、うまく機能しています。ただし、サーバーにインストールすると、正常にインストールされたと表示される前にエラーが表示されました。
これはエラーでした:
サーバーでpy2neoを使用しようとすると、エラーが発生します:無効な構文(rest.py、345行目)
ローカルでは python 2.7.2 を実行していますが、サーバーでは 2.5.2 を実行しています。これは Python バージョンの既知の問題ですか?
python - WTFormsでの選択肢の検証は、データベースが更新するときに更新されません
SelectField
WTFormsのメソッドが次の形式のcan引数を取ることを理解しchoices
ています...
データベースへの呼び出しに基づいて選択肢を入力する必要があります。バックエンドとしてneo4jを使用しているため、モデルフォームやその他の組み込みソリューションを使用してデータをフォームに入力することはできません。
choices = get_list_of_things()を実行すると、有効な選択肢のリストが生成されます。これは基本的に機能します。
ただし、データベースが更新してもリストが更新されていないようで、後でそのフォームに戻ります。dbに追加して戻ると、最初のリストが表示されます。
python - Neo4jのすべてのデータ型文字列は、REST APIを介してpy2neoによってアクセスされますか?
このフォームのクエリで、neo4jに新しいノードを作成します。
cypher.get_or_create_indexed_node(index="person", key="name", value="Fred", properties={"level" : 1}
ただし、Fredにクエリを実行してプロパティを調べると、彼のレベル="1"/引用符付き/です。何かが彼の値を文字列に変換しているようです。これはそれほど重要ではありません---必要に応じて取得時に変換できます---次のような暗号クエリを実行しようとする場合を除きます...
start b = node:person("*:*") RETURN b.level, ID(b) ORDER BY b.level desc SKIP 5 LIMIT 5;
...b.levelが期待どおりに注文されていないことに気付きました。私は次のようなものを見ています:
私が次のようなものを期待するとき:
リファレンスマニュアルにはスキップ/制限機能が示されているため、これはデータ型の問題だと思います。
すべての値が文字列である場合ですか、それとも入力に正しく追加する必要があるものが他にある場合ですか?
wildcard - neo4jの暗号クエリのノード属性でワイルドカードを使用する方法
Neo4jのクエリパラメータから検索を作成しようとしていますが、ワイルドカードの識別に問題があるようです。「*」は、ノード属性のワイルドカードでは機能しません。
私が持っているコードは以下の通りです:
残念ながら、クエリを実行したり、コンソールに切り替えたりすると...
...ワイルドカード文字のように、価格が何かに一致するのではなく、文字通り「*」に一致しようとしているように、null値を取得します。price
たとえば、変数を0に置き換えると、すべて問題ありません。
これは私が次のようなことを言うことができることを示唆しているので、私は完全には理解していません:
「*」は、count(*)とnode:indexes( "*:*")の両方のワイルドカードとして機能します。
違いがあれば、Pythonとpy2neoを使用しています。