問題タブ [cypher]
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.
graph - Neo4j / Gremlin / Cypher:マップのような設定で特定の距離(深さ)に到達するまですべてのノードを取得するにはどうすればよいですか?
フィールドのある単純なグラフがあります。各フィールドには4つの隣接フィールド(北東-南西)があります。
私はグラフデータベース(neo4j)を設定したので、これらはすべてうまく接続されています(グリッドのように)。私が今やりたいのは、すべてのノードを(開始ノードから)取得することです。つまり、5ホップ離れています。
古典的なトラバースでは、これは正常に機能し、次のようになります。
したがって、次のような「マップ」がある場合:
開始ノード「13」と「深さ」2でクエリを実行し、マークされた12ノードを取得する必要があります。これらは13から2ステップ離れているためです。
これでjo4neoを使用しました...
暗号またはグレムリンで同じ機能を実現するにはどうすればよいですか?
友達の例を見つけましたが、深さをパラメーターにする必要があるため、これは実際には役に立ちません(つまり、深さ4、場合によっては6が必要な場合もあります)。
注:フィールド以外の接続もありますが、必要なのは明らかにフィールドだけです。また、一方向だけでなく、接続されているすべてのノードを取得する必要があります。
解決策:ポインターのおかげで私は解決策を得ました:
neo4j - Cypher-queryで関係のエンドノードを返す方法は?
次のCypher-Queryは、一致するrelationship-indexからすべての関係を返します。
関係自体ではなく、これらの関係のすべてのエンドノードを返すにはどうすればよいですか?
私は次のようなものを期待します
しかし、end(エンドノード)はリレーションシップのプロパティではないため、これは機能しません。
ありがとうホルグ
neo4j - 中央ノードでのRESTを介したNeo4jサイファークエリのパフォーマンス
私はまだneo4jにかなり慣れていません。私は、PoCとしてRESTを介してノードをneo4j db(サーバー)に挿入する小さなRESTFULサービスを作成しました。構造は次のようになります。ルート-[ノード]->n->[ノード]->ノード
nノードは「中央」にあるノードです。他の中央ノードを異なるノードタイプとして追加することを計画しました(例:製品/カテゴリ/ドキュメント/属性/ユーザー...)
私の最初の例では、約を追加しました。1.000ノード。今、私はノードの数を増やし、そのノードを照会しようとしました。今、私は一種のパフォーマンスの「問題」に直面しています。これが私のクエリで、neo4j(1.6.1)Webコンソールで実行されます
START x = node(0)MATCH PATH =(x-[:NODES]-> centered-[:NODE]-> node)return node ORDER BY node.id LIMIT 10
START x = node(0)MATCH PATH =(x-[:NODES]-> centered-[:NODE]-> node)return count(*)
ページネーションのクエリが必要です。最初の要素は表示する要素を選択し、2番目の要素はページを計算する必要があります。
クエリ時間:1.000ノード:〜120ms 4.000ノード:〜200-300ms 6.000ノード:〜250-500ms
暗号クエリ時間は非常に速く増加しています(私の意見では)。そのようにして〜2.000.000ノードを追加する予定でしたが、クエリに何か問題がありますか?それらをより速く取得することは可能ですか?(私はすでにneo4jヒープサイズを100Mに設定しましたが、10kノードで問題ないはずです)
前もって感謝します!
lucene - Cypher での neo4js lucene インデックス クエリの並べ替え
Web コンソールの暗号クエリでこの例をどのように記述できますか?
それが私がこれまでに得たものです。並べ替えを追加するにはどうすればよいですか?
graph - Neo4jおよびLuceneマルチキークエリ(または:Cypherを使用する必要がありますか?)
Neo4jにグラフがあり、ノードは平面内のランダムな点を表し、各ノードにはプロパティとして保存された座標があります(xとy、値のタイプはdouble
)。
ノードを作成してインデックスを作成します。
さて、私がする必要があるのは、正方形の領域にあるノードを照会することです。たとえば、次のクエリを実行しました。
そして、これは応答です:
ご覧のとおり、機能していません。そして、その理由がわかりません(おそらく、インデックスを構成する必要がありますか?)。Luceneを使用する必要が
ないことに注意してください。Cypherを使用してその情報を収集する方法がある場合(正方形の領域の中央にあるノードから開始する)、実際にはより良いでしょう。なぜなら、見つかったノード間の関係も必要だからです。
追加情報 それが重要な場合、グラフは平面上のランダムな点のセットでのドロネー三角形分割を表します。より抽象的な言葉で言えば、特定の領域にあるサブグラフ全体を「抽出」する必要があります。
どんな助けでも本当にありがたいです!
neo4j - cypher を使用した BFS トラバーサル
BFS を使用して有向非巡回グラフ (DAG) をトラバースする必要があります。私は REST API 経由で neo4j を使用しているため、neo4j との主な通信手段は Cypher を使用することです。
Cypher を使用すると、開始ノードからすべてのパスのセットを取得し、そこから BFS トラバーサルを導き出すことができます。
Cypher を使用して BFS トラバーサルを取得する簡単な方法があるかどうか疑問に思っていました。出力として期待するのは、ノードのセットの配列です。
graph - Neo4j でマルチレベルの関係の Cypher Query を記述していますか?
私は小さなアフィリエイト構造を開発して、グラフ データベースの概念をよりよく理解し、Neo4J を学び、それが私に何を提供できるかを確認しています。私は RDBMS を何年も使用してきましたが、Cypher はかなりラフです。非常に単純なアフィリエイト システムを構築しようとしています。
アフィリエイトのジョーは、メアリー、ボブ、マークを紹介しています。したがって、すべてのノードを作成し、「参照」関係を作成します。ここで、メアリーはジュリー、ジェシカ、ジョアンについて言及します。ボブはビリーとバクスターのことを言っています。マークはマイケルとマルクスを指します。そして彼らの紹介は人々を紹介し続けます。
ジョーの元の紹介の 1 つが紹介されるたびに、ジョーは「世代」を獲得します。彼の最初の世代は、メアリー、ボブ、マークです。彼の第 2 世代は、ジュリー、ジェシカ、ジョアン、ビリー、バクスター、マイケル、マルクスです。
さて、Cypher クエリを使用して、どのように彼の世代を発見し、もちろんその数を発見できますか? 木の中での彼らの場所は?彼の第 3 世代または第 4 世代が誰で、誰が誰であるかをどのように知ることができますか?
私の心はここでねじれています。皆さんが助けてくれることを願っています。
neo4j - CypherQLのサブクエリ
Cypher QLでサブクエリを作成することは可能ですか?私が今直面している問題は、トライアドを見つけることです。私は以下のコードを使用しています:
上記のクエリの問題は、トライアドを2回カウントすることです。たとえば、
B -- A -- C
と
は両方とも
C -- A -- B
トライアドとして返されます。
私の計画は、 xor
の1つを取り除くことです。しかし、そうするためのサブクエリ以外は何も考えられません。どんな助けでも大歓迎です。
更新:
別の問題が見つかりました。以下のグラフを検討してください。nbrl--n--nbrr
nbrr--n--nbrl
クエリは以下をSTART n=node(*) MATCH triad=nbrl--n--nbrr RETURN triad
返します:
python - Neo4j:ノードのプロパティと位置に基づいて単一ノードを選択するためのクエリアプローチはどれですか?
どのNeo4jクエリメカニズム(Gremlin、Cypher、トラバーサル、組み込みアルゴリズム)をいつ使用するかを評価するのに問題があります。たとえば、グラフ全体で単一のノードを選択したいと思います
- エッジの数が最も多い。
- 特定のパス内-4つの開始ノードの1つからの長さ。
- プロパティに特定の値があります。
私はPythonneo4jrestclientを使用しており、いくつかの要件に対して基本的なグレムリン/サイファースクリプトとトラバーサルを個別に実行できます(たとえば、グレムリンでIn / OutDegreeを計算する)が、それらを組み合わせる方法の全体像が欠けています。
助言がありますか?
neo4j - 暗号出力の理解
私はこのようなグラフを持っています: (2)<-[0:CHILD]-(1)-[1:CHILD]->(3) つまり: ノード 1,2 および 3 (すべて名前付き); エッジ 0 と 1
次の暗号クエリを作成します。
結果として得られた:
ここで私の質問: なぜすべてのノードが 2 回になり、リレーションシップが 3 回になったのですか? 一度全部手に入れたいです。
お時間をいただきありがとうございます^^