私は特定のTag
に属するすべてのDecision
を返し、次のサイファーのクエリを持っている:のNeo4jサイファークエリおよび複合オブジェクト
MATCH (d:Decision)-[:BELONGS_TO]->(t:Tag) WHERE t.id = {tagId} RETURN d
私のビジネスロジックによると、すべてのTag
は同義語のセットを持つことができます
(t:Tag)<-[:FOR]-(ts:TagSynonym)-[:HAS]->(s:Tag)
およびすべてs:Tag
には、同じ方法で同義語が関連付けられている場合があります。無制限の深度。ts.approved = true
。
開始タグ(t.id = {tagId}
)に関連付けられた決定だけでなく、すべてのタグの同義語(無制限の深度)に関連付けられたすべての決定も返すために、最初のクエリを拡張する方法を示してください。
これらの決定のすべては、1つのd
変数の下で返されるのが理想的です。
今、私は次のクエリで遊んだ:
MATCH p=(t:Tag)-[:FOR|HAS*]-(end:Tag)
WHERE t.id = {tagId} AND NOT (end)<-[:FOR]-()
OPTIONAL MATCH (d:Decision)-[:BELONGS_TO]->(tag)
RETURN d
が、それは動作しません。
http://54.165.53.29:33761/browser/
neo4j
timer-rocks-hilltop
次のクエリを使用してください:それはパス(Decision3)にのみ、最後の決定を返す
MATCH p=(t:Tag)-[:FOR|HAS*0..]-(end:Tag)
WHERE t.id = 1 AND NOT (end)<-[:FOR]-()
MATCH (d:Decision)-[:BELONGS_TO]->(end)
RETURN d
を私はのNeo4jのサンドボックスを作成している
を更新し
Decision1とDecision2も返さなければなりません。
これはsample databaseユーザー名/パスワードです:のNeo4j/neo4j1
私はこのタグに関連した3 Tag
と3 Decision
を持っています。
また
Tag 2
はTag 1
の同義語であり、Tag 3
はTag 2
の同義語です。
Decision
をTag 1
で、その同義語(Tag 2
とTag 3
)で検索する必要があります。これは決定事項です:Decision1
、Decision2
、ゼロ深さ可変の深さトラバーサルとの微妙な事がありDecision 3
データセットのサンプルと予想される結果を掲載することはできますか? –
確かに、私は私の質問を更新しました – alexanoid