グラフがあります:(:Sector)<-[:BELONGS_TO]-(:Company)-[:PRODUCE]->(:Product)
です。トラバーサルブランチの最初のn個のノードに一致するNeo4j/Cypher
私は以下の質問を探しています。
(:Sector)
で始まります。その後、その部門の最初の50社と一致し、各企業は最初の10製品と一致します。
初回限定は簡単です。しかし、製品を制限することはどうか。
サイファーで可能ですか?
UPDATE
@cybersamは、それはまだ、会社ごとにすべての製品を横断するときに、このソリューションは拡張できません。ただし、有効な結果
MATCH (s:Sector)<-[:BELONGS_TO]-(c:Company)
WITH c
LIMIT 50
MATCH (c)-[:PRODUCE]->(p:Product)
WITH c, (COLLECT(p))[0..10] AS products
RETURN c, products
を返しますクエリの下に示唆したように。スライスは、各社の製品が収集された後に適用されます。製品の数が増えると、クエリのパフォーマンスが低下します。
歓声@cybersam。このクエリは機能します。企業あたりの製品数が増えるとどのように拡張されるのでしょうか?あなたはまだすべての製品にマッチし、それらをグループ化し、後に制限します。私はあなたが特定の数のノードに合ったときにマッチングを止めることができるかどうかに関心がありました。 – drgraduss
それはすばらしい質問です。残念ながら、私は 'LIMIT'を使う方法がないので、会社ごとの製品を制限するだけです。 – cybersam
大丈夫です。トラバーサルフレームワークAPIが私にとっての答えだと思われます。私はスケーラビリティについての解答を受け付けます。あなたの助けを感謝@cybersam。 – drgraduss