私は neo4jphp ( https://github.com/jadell/neo4jphp ) を使用しています。これが私のデータノードと関係です。トラバーサルを使用して任意の 1 つのファイルの「関連するダウンロード」を見つけようとしていますが、コードに関するヘルプが必要です。これは私の現在のコードです(file_id = 1をダウンロードした人のみを返します)
$traversal = new Everyman\Neo4j\Traversal($this->client);
$traversal->addRelationship('download', Relationship::DirectionIn)
->setPruneEvaluator(Traversal::PruneNone)
->setReturnFilter(Traversal::ReturnAllButStart) // ReturnAllButStart OR ReturnAll
->setMaxDepth(0);
$pager = new Everyman\Neo4j\Pager($traversal, $startNode, Traversal::ReturnTypeNode);
$pager->setPageSize(10)
->setLeaseTime(120);
while ($results = $pager->getNextResults()) {
foreach ($results as $node) {
echo $node->getProperty('fi') . $node->getProperty('name')."\n";
}
}
たとえば、開始ノードが file_id = 1 の場合、最も関連性の高いダウンロードは file_id = 3 になります。これは、file_id 1 をダウンロードするすべての人が file_id = 3 もダウンロードするためです。File_id 2 と 4 は 2 番目にランク付けされます。
前もって感謝します。