2016-10-15 6 views
0

サイファークエリ(またはボルトプロトコル)を介してIDの割り当てを取得し、私は、ノードとの関係のためのIDの割り当てを取得するために:play sysinfoまたはのNeo4jブラウザで

:GET /db/manage/server/jmx/domain/org.neo4j/instance%3Dkernel%230%2Cname%3DPrimitive%20count 

を行うことができます。 Cypherのクエリで同じ情報を取得して、ボルトプロトコルでリクエストできるようにする方法はありますか?私は、すべてのノード/関係を検索し、最大のIDを返すクエリを書くことができますが、それは大きなデータベースでは遅いので、格納されたプロパティに直接アクセスできるものを好むでしょう。

答えて

1

the docs、特にdbms.queryJmx()を確認してください。この特定のクエリの場合、

CALL dbms.queryJmx('org.neo4j:instance=kernel#0,name=Primitive count') 

あなたは、あなたがつかむことができる他に何探るだけではなく、クエリ文字列として'org.neo4j:*'に渡したい場合。結果の正確な構造は、ドライバの選択に応じてかなり興味深いものになる可能性があります。そのため、解析作業が必要になることがあります。

+1

Btwの場合、neo4jは内部IDをリサイクルまたは変更する権利を保持しているため、実際にはそのIDに基づいて次のIDやその他のIDを予測する必要はありません。したがって、この情報の周りには何を設計するか非常に注意してください。 –

+0

ありがとうございます!心配しないでください。それは予測をすることではありません。そのラベルに基づいてすべてのノードを削除するコードを書いているので、これはバッチでこれを行う方が高速です。私は最大ノードIDを知りたいので、バッチ数を知っています(バッチはIDが定義された範囲にあるノードによって定義されています)。しかし、MATCH(a:ラベル) LIMIT 1'を返すとnullが返されます。 –

+0

ラベル数も非常に高速ですので、MATCH(n:ラベル)RETURN COUNT(*)で合計を得ることができます –

関連する問題