このようなものをいそれが正しい方向に進んでいるように見えますか?
apoc.path.expandConfig
を基本的に使用してs
から開始し、新しいTagSynonym
とTag
ノードを取得し始めます。このクエリの線に沿って何かを検討することもできAPOCライブラリを使用せずに似た何かを達成するために
MATCH (t:Tag)<-[:FOR]-(ts:TagSynonym)-[:HAS]->(s:Tag)
WHERE t.id = {tagId} AND s.id = {synonymId}
WITH t, ts, s
CALL apoc.path.expandConfig(s
{
uniqueness:"NODE_GLOBAL",
labelFilter:"TagSynonym|Tag",
relationshipFilter: '<FOR|HAS>'
}) YIELD path
RETURN t, ts, s, path
必要に応じて、...あなたの答えのための
MATCH (t:Tag)<-[:FOR]-(ts:TagSynonym)-[:HAS]->(s:Tag)
WHERE t.id = {tagId} AND s.id = {synonymId}
WITH t,ts,s
OPTIONAL MATCH p=(s)-[:FOR|HAS*]-(end:Tag)
WHERE NOT (end)<-[:FOR]-()
RETURN p
感謝。私は謝罪しますが、apocなしで実装することは可能ですか?以前はapocをインストールしようとしましたが、失敗しました(特に、Neo4jを組み込んだテストでは)、アプリケーションで純粋なCypherクエリを使用しました。 – alexanoid
あなたのためにうまくいかない非APOCクエリを追加しました。私はあなたのデータでどのように動作するのか分かりません。また、パス拡張では裸の '*'を注意してください。 'Tag'と' TagSynonym'ノードがどれほど密接に関連しているかによって、すぐに制御が外れることがあります。 –
ありがとうございます、それは働いています! – alexanoid