Example #1
0
 /**
  * {@inheritdoc}
  */
 public function getItems(BucketInterface $bucket, array $dimensions, EntityStorage $entityStorage)
 {
     $range = $this->dataProvider->getRange();
     $options = $this->options->get();
     if (!$range) {
         $range = $options['range_step'];
     }
     $dbRanges = $this->dataProvider->getAggregation($bucket, $dimensions, $range, $entityStorage);
     $dbRanges = $this->processRange($dbRanges, $options['max_intervals_number']);
     $data = $this->dataProvider->prepareData($range, $dbRanges);
     return $data;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function getItems(BucketInterface $bucket, array $dimensions, \Magento\Framework\Search\Dynamic\EntityStorage $entityStorage)
 {
     $aggregations = $this->dataProvider->getAggregations($entityStorage);
     $options = $this->options->get();
     if ($aggregations['count'] < $options['interval_division_limit']) {
         return [];
     }
     $this->algorithm->setStatistics($aggregations['min'], $aggregations['max'], $aggregations['std'], $aggregations['count']);
     $this->algorithm->setLimits($aggregations['min'], $aggregations['max'] + 0.01);
     $interval = $this->dataProvider->getInterval($bucket, $dimensions, $entityStorage);
     $data = $this->algorithm->calculateSeparators($interval);
     $data[0]['from'] = '';
     // We should not calculate min and max value
     $data[count($data) - 1]['to'] = '';
     $dataSize = count($data);
     for ($key = 0; $key < $dataSize; $key++) {
         if (isset($data[$key + 1])) {
             $data[$key]['to'] = $data[$key + 1]['from'];
         }
     }
     return $data;
 }
Example #3
0
 /**
  * @param DataProviderInterface $dataProvider
  * @return int
  */
 private function getMinRangePower()
 {
     $options = $this->options->get();
     return $options['min_range_power'];
 }