2017-06-07 2 views
0

私は書籍データベースを:CATEGORY:BOOKで検索しています。可変長の関係にあるノードの数を取得する

私はある著者が書いた現在のものと似た本を見つけようとしています。 :BOOK:similarの関係(他の書籍との関係は関係ありません)を持っており、私は3つまでの同様のチェーンを探したいと思います。ここに私のクエリはです:

MATCH (currentBook:BOOK {ISBN: {ISBN}})-[:similar*1..3]-(newBook:BOOK {author: {currentAuthor}}) 
RETURN newBook 

ここで問題です:

私はどこに使用どのように多くの同様の関係を知る必要があります。

それで、*1..3が実際に特定の本のために意味していたことを意味します。したがって、このような何か:

MATCH (currentBook:BOOK {ISBN: {ISBN}})-[sim:similar*1..3]-(newBook:BOOK {author: {currentAuthor}}) 
SET newBook.simsUsed = AMOUNT_EXPANDED(sim) 
RETURN newBook 

Here's a (fake) sample of my dataset.

答えて

1

SIZE(sim)は、あなたが探しているものと考えられます。あなたがから始まっ予約れているすべてのブックへのパスの長さが依存しているため、

MATCH (currentBook:BOOK {ISBN: "978-0446310789"})-[sim:similar*1..3]-(newBook:BOOK {author: "fake"}) 
RETURN currentBook, newBook, SIZE(sim) AS lth; 

あなたはしかし、その値にnewBook.simsUsedを設定すべきではありません:

はたとえば、次のクエリは、各パスの長さを返します。 、パスの長さ(特定の本から始まる)は時間とともに変化する可能性があります。一般に、冗長データの格納は避けてください。

関連する問題