私のdbにはタグでタグ付けされたリソースがあります。タグは他のタグ内にあっても構いません(つまり、neo4jは(neo4j:tag)-[:WITHIN]->(databases:tag)
のように 'データベース'に接続されます)。ただし、すべてのタグに親があるわけではありません。ノードをノードのセットに直接的かつ間接的に接続するにはどうすればよいですか?
「データベース」を検索すると、「neo4j」という井戸でタグ付けされたリソースが返されます。
オプションの試合を試しましたが、期待どおりに動作しません。
MATCH (re:resource)-[:TAGGED_WITH]->(child:tag)
OPTIONAL MATCH (parent:tag)<-[:WITHIN_TAG]-(:tag)<-[:TAGGED_WITH]-(re)
WHERE child.uid IN {includedTags} OR parent.uid IN {includedTags}
RETURN re
含まれるタグはタグIDの配列です。
さらに次のようなことを試しましたが、親を持つタグだけでタグ付けされたリソースを返すようです。
OPTIONAL MATCH (parent:tag)<-[:WITHIN_TAG]-(:tag)<-[:TAGGED_WITH]-(re:resource)-[:TAGGED_WITH]->(child:tag)
任意の提案やアイデアをいただければ幸いです。
これは素晴らしいです!どうもありがとう。それは、WITHIN_TAGの関係が別の方法を指している必要があるようです。 – bornytm
このようにすることの望ましくない影響の1つは、より多くの検索タグを追加することは、結果を減らすのではなく、結果の数を広げることです。任意のタグではなく、すべての(またはほとんどの)タグに一致するノードを返す方法について考えてみませんか? – bornytm