問題タブ [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.
neo4j - 共通のノード セットによって接続されているノードを返す
cypher または gremlin のいずれかを使用して、Neo4j で共通のノード セットを持つノードのリストを返す方法はありますか?
例は
私は始めて、「私が知っPerson1
ているすべての人を憎む人々を見つけてください」と言いたいと思います.Person2
Person1
Friend2,Friend3
Person2
Friend2,Friend3
私はつながりを見つけることから始めました、
しかし、その人がすべての友達を憎まなければならないような表現方法を見つけることができないようです.
これはCypherで実行できますか?
neo4j - 一致するすべての関係を cypher で返す
一致するプロパティを持つことができる差分関係を使用して、共通のノードを共有する一連のノードを取得したいと考えています。私が思うクエリは次のようになります。
しかし、これを実行すると cypher が返されますSyntaxException: unknown function
。このタイプのクエリを実行できる方法はありますか?
lucene - Neo4j Cypher: lucene クエリに続く開始ノードの制限
lucene クエリを使用してインデックスからノードのリストを見つけることから始まる Cypher クエリがあります。
インデックスのクエリが多数の結果を返すと、非常に遅くなります。残りのクエリで使用されるノードの数を制限したいと思います。つまり、n=node:people("name:ROBERT") を 30 の結果に制限します。
lucene や Cypher でこれを行う明確な方法がわかりません。
たとえば、次の2つのクエリに分割できると思います。
START n=node:people("name:ROBERT") RETURN n LIMIT 10
次に、返されたノードを使用してクエリの 2 番目の部分を実行しますが、もっと良い方法があるかどうか疑問に思っていました。
neo4j - グレムリンでの関係インデックスの使用は比較的遅い
Neo4j には、約 180000 のエッジを含むリレーションシップ インデックス「index_e_ASSOC_sMETHdGEXP」があり、すべて属性「プロパティ」があります。この時点で、プロパティ値に関係なく、インデックスから 200 個のエッジをリストする単純なクエリを実行したいと考えています (後で、エッジ プロパティが <= 0.01 である 200 個の最初のエッジ アウト頂点に対して同じ属性値をフェッチするようなクエリを実行します)。 out ノードからいくつかの属性値をフェッチします。
=713ms
インデックスから 200 個の最初のエッジを取得するには262msかかります。
最初のクエリの完了が非常に遅いのはなぜですか? 「所定のリスト」から 200 個のエッジを取得し、すべての出力ノードからいくつかの属性値を取得するのに、それほど時間はかかりません。私は Cypher と Gremlin に関しては完全な初心者なので、Cypher または Gremlin でこのクエリを実行するより高速な方法はありますか?
編集:クエリ(1)を23回実行しました:
Edit2:それ以来、次の構成でデータベースを再インポートしました:
query(1) は実際には23849 ミリ秒かかります。キャッシュの問題のように見え始めています。
db ログの興味深いスニペット:
JVM パラメータには以下が含まれます
ガベージコレクタが実行に干渉しているようですが、それはなぜですか? JVM パラメータを使用して、サーバー インスタンスに最大量の ~15 GB のメモリを使用するように指示しています。
Edit4: query(1) を実行すると、ログに以下が追加されます。
neo4j - Cypherで、関係が存在しない場合、どうすれば関係を作成できますか。更新する場合はプロパティを更新します
Neo4JのCypherでは、2つのノードが与えられ、それらの間に関係がない場合は、重みプロパティが1の関係(タイプFoo)を作成したいと思います。この関係がすでに存在する場合は、その重みプロパティをインクリメントしたいと思います。
単一のCypherクエリでこれを行う良い方法はありますか?ありがとう!
編集:いくつかの追加の詳細:ノードはすでに作成されており、一意であり、インデックスに含まれています。
neo4j - Neo4j Cypher 関係の方向を取得
特定のノードのすべての(インとアウトの)関係を返す次の暗号クエリがあります。
次に、それぞれの関係の方向性を見つけたいと思います。" "のようなコマンドはありますRETURN RelationshipDirection(r)
か?? :)
ありがとう。
neo4j - Neo4j サイファークエリでエンド/リーフノードのみを返す方法は?
私は次のような構造を持っています:
user-[:talking]->topic-[:categorized_in]->topic[:categorized_in]->topic... など
ユーザーから始めて、彼らが話している最も遠いトピックをどのように取得しますか。基本的に、これは彼らが話しているトップレベルのカテゴリを表しています。これが私が知っている唯一の方法であり、葉ノードだけでなく、途中のすべてのノードを返します。
これは私の最近の試みです。これが最善の方法であるかどうかはわかりませんが、うまくいくようです?:
graph - Neo4J では、グラフで最大のノード ID を取得するにはどうすればよいですか?
すべてのノードを反復処理するスクリプトを実行しています。当初、最大ノード ID は、REST を介してこの Cypher クエリで取得したグラフ内のノードの総数に対応すると考えていました。
ただし、各番号を反復すると、特定の ID のノードが存在しないことがわかります。したがって、これは、最大 ID ノードがノードの総数よりも大きいことを意味します。この番号を取得する方法はありますか? 私は Cypher または Rest を強く好みます。
neo4j - neo4j cypher の三項演算子/デフォルト値
暗号クエリ自体からいくつかのデフォルト値を返すのに役立つ三項演算子のようなものを実装する必要があります。
シナリオは -
従業員の都市がデリーの場合は 5 を返し、それ以外の場合は 10 を返します
三項演算子のようなもの。
私は次のようなことを試しました
しかし運がない。
Cypher であろうと Traversal であろうと、neo4j でそのようなシナリオを実装する方法はありますか。
spring - Cypher でノードを削除できません
私はSpring Data Neo4jに取り組んでおり、いくつかのクエリにCypher-Languageを使用しています。長い間問題なく動作しますが、ノードの削除は機能しません。
例えば:
私は依存関係を使用します
Cypher のバージョン 1.7.2 は、スプリング データ neo4j およびカーネル 1.6 と競合するため使用できません。
誰でも私を助けることができますか?
ノードを削除したくない
リレーションシップなども削除したいので。
どうも!