1

Python バインディング v 1.6 で自分の neo4j データベースに対して次の Cypher クエリを実行すると、問題が発生しました。

START  n0 = node:my_nodes(label='1'), n1 = node:my_nodes(label='1'), 
       n2 = node:my_nodes(label='2'), n3 = node:my_nodes(label='2'), 
       n4 = node:my_nodes(label='2')
MATCH (n0)-[r0]-(n1),(n0)-[r1]-(n4),(n1)-[r2]-(n2),(n2)-[r3]-(n3)
WHERE (r1.year - r0.year = 1) AND (r2.year - r1.year = 0) AND 
      (r3.year - r2.year = 0)
RETURN count(distinct n0), count(distinct n1),
       count(distinct n2), count(distinct n3),
       count(distinct n4)

私のデータベースには、インデックス付きプロパティlabelと整数プロパティとの関係を持つノードがありますyear。このクエリを実行すると、エラーが発生します

in decorator return fn(*args, **kwargs)
org.neo4j.cypher.CypherExceptionPyRaisable: Unclosed parenthesis
"WHERE (r1.label - r0.label = 1) AND 
(r2.label - r1.label = 0) AND (r3.label - r2.label = 0)"
                                                               ^

私はすでにこのクエリで括弧をいじっていますが、成功していません。誰でもこのエラーを解決するのを手伝ってもらえますか?

編集: 問題は neo4j-embedded バージョン 1.6 の使用にあると思いましたが、バージョン 1.9.dev0 (github からコンパイル) までアップグレードしましたが、それでも同じエラーが発生します。

Edit2: ulkas のコメントのおかげで、インタラクティブなサイファー コンソールについて知り、そこにサンプル グラフとサイファー クエリを作成しました (ただし、インデックス部分はありません)。クエリに問題があります:

 Error: java.lang.RuntimeException: org.neo4j.helpers.ThisShouldNotHappenError: 
 Developer: Andres claims that: Unexpected traversal state encountered.

Edit3: コンソールをいじってみたところ、無向リレーションシップとダイヤモンド シェイプ パターン マッチングが許可されていないことがわかりまし。それが、コンソールhttp://console.neo4j.org/?id=oqspkcで作業したものです。このクエリは Python で失敗し、同じエラー メッセージが表示されます ( Unclosed parenthesis)。neo4j でひし形のパターンを一致させることはできますか? Python バインディングの何が問題になる可能性がありますか?

4

0 に答える 0