はい。それらの単語のサブセットが含まれているすべての記事を検索し、その後に述べた言葉の数は、あなたのワードリストで供給された単語の数ある記事だけを返す
:私は考えることができる2つの方法があります。
取得方法:指定された単語リストの単語ノードを取得してから、記事にすべての単語が記載されている記事を取得します。ここで
が上でこれをテストするためのグラフ例です:記事で触れた単語の数にワードリストのサイズを比較
MERGE (a1:Article {name:'a1'}),
(a2:Article {name:'a2'}),
(a3:Article {name:'a3'})
MERGE (w1:Word{name:'orange'}),
(w2:Word{name:'apple'}),
(w3:Word{name:'pineapple'}),
(w4:Word{name:'banana'})
MERGE (a1)-[:MENTIONED]->(w1),
(a1)-[:MENTIONED]->(w2),
(a1)-[:MENTIONED]->(w3),
(a1)-[:MENTIONED]->(w4),
(a2)-[:MENTIONED]->(w1),
(a2)-[:MENTIONED]->(w4),
(a3)-[:MENTIONED]->(w1),
(a3)-[:MENTIONED]->(w2),
(a3)-[:MENTIONED]->(w3)
アプローチ1は、次のようになります。
WITH ["orange", "apple"] as words
MATCH (word:Word)<-[:MENTIONED]-(article:Article)
WHERE word.name IN words
WITH words, article, COUNT(word) as wordCount
WHERE wordCount = SIZE(words)
RETURN article
これは、記事と言及された単語との間に、言葉が何回言及されているかに関わらず、言及された関係が1つしかない場合にのみ機能します。
WITH ["orange", "apple"] as words
MATCH (word:Word)
WHERE word.name in words
WITH COLLECT(word) as words
MATCH (article:Article)
WHERE ALL (word in words WHERE (word)<-[:MENTIONED]-(article))
RETURN article
あなたが把握するには、これらのそれぞれにPROFILEを使用して試すことができます:我々はすべての単語が記載されている記事に一致していることを確認するための言葉:
アプローチ2はのコレクションにALLを()を使用していますあなたのデータセットに最も適しています。
ありがとう@InverseFalcon!これは素晴らしいです。 – purplecones