20

特定の数のランダム ノードを取得したいと思います。グラフは 3,000,000 個のノードで構成されており、そのうちのいくつかはソースであり、いくつかはターゲットであり、いくつかは両方です。

目的はランダム ソースを取得することです。ランダムを選択する方法がわからないため、プログラムはノード ID を表す 1 から 3 000 000 までの k 個の乱数を生成し、ソースではないランダムに選択されたすべてのノードを破棄します。この手順は手間がかかるので、暗号クエリでランダムソースを直接選択することはできないのだろうか。

すべてのソースを選択する場合、クエリは次のようになります。

START t=node(*) MATCH (a)-[:LEADS_TO]->(t) RETURN a

限られた数のランダムノードを暗号で直接選択する方法を知っている人はいますか?それが不可能な場合は、回避策を提案しますか?

4

4 に答える 4

11

スキップ/制限でクエリを制限できるので、できるようになります

START t=node(*) 
MATCH (a)-[:LEADS_TO]->(t) 
RETURN a
SKIP {randomoffset} LIMIT {randomcount} 

それ以外の場合は、ランダムなノード ID のセットを作成し、それらをパラメーターとして cypher ステートメントに渡すこともできます。

于 2012-09-20T17:41:59.757 に答える