private function doDiscovery(Node $input, RecommendationEngine $engine, Context $context)
{
$recommendations = new Recommendations($context);
$context->getStatistics()->startDiscovery();
$result = $this->discoveryExecutor->processDiscovery($input, $engine->getDiscoveryEngines(), $engine->getBlacklistBuilders(), $context);
foreach ($engine->getDiscoveryEngines() as $discoveryEngine) {
$recommendations->merge($discoveryEngine->produceRecommendations($input, $result, $context));
}
$context->getStatistics()->stopDiscovery();
$blacklist = $this->buildBlacklistedNodes($result, $engine);
$this->removeIrrelevant($input, $engine, $recommendations, $blacklist);
return $recommendations;
}