Esempio n. 1
0
 /**
  * @param RequestInterface $request
  * @param Table $documentsTable
  * @param array $documents
  * @return array
  */
 private function processAggregations(RequestInterface $request, Table $documentsTable, $documents)
 {
     $aggregations = [];
     $documentIds = $documents ? $this->extractDocumentIds($documents) : $this->getDocumentIds($documentsTable);
     $buckets = $this->aggregationResolver->resolve($request, $documentIds);
     $dataProvider = $this->dataProviderContainer->get($request->getIndex());
     foreach ($buckets as $bucket) {
         $aggregationBuilder = $this->aggregationContainer->get($bucket->getType());
         $aggregations[$bucket->getName()] = $aggregationBuilder->build($dataProvider, $request->getDimensions(), $bucket, $documentsTable);
     }
     return $aggregations;
 }