/** * @param SearchResultInterface $searchResult * @return array */ protected function searchResultToOutput(SearchResultInterface $searchResult) { $arrItems = []; $arrItems['totalRecords'] = $searchResult->getTotalCount(); $arrItems['items'] = []; foreach ($searchResult->getItems() as $item) { $arrItems['items'][] = $item->getData(); } return $arrItems; }
/** * Return field faceted data from faceted search result * * @param string $field * @return array * @throws StateException */ public function getFacetedData($field) { $this->_renderFilters(); $result = []; $aggregations = $this->searchResult->getAggregations(); $bucket = $aggregations->getBucket($field . '_bucket'); if ($bucket) { foreach ($bucket->getValues() as $value) { $metrics = $value->getMetrics(); $result[$metrics['value']] = $metrics; } } else { throw new StateException(__('Bucket do not exists')); } return $result; }
/** * Return field faceted data from faceted search result * * @param string $field * @return array * @throws StateException */ public function getFacetedData($field) { $this->_renderFilters(); $result = []; $aggregations = $this->searchResult->getAggregations(); // This behavior is for case with empty object when we got EmptyRequestDataException if (null !== $aggregations) { $bucket = $aggregations->getBucket($field . RequestGenerator::BUCKET_SUFFIX); if ($bucket) { foreach ($bucket->getValues() as $value) { $metrics = $value->getMetrics(); $result[$metrics['value']] = $metrics; } } else { throw new StateException(__('Bucket does not exist')); } } return $result; }
/** * @param SearchResultInterface $searchResult * @return array */ protected function searchResultToOutput(SearchResultInterface $searchResult) { $arrItems = []; $arrItems['items'] = []; foreach ($searchResult->getItems() as $item) { $itemData = []; foreach ($item->getCustomAttributes() as $attribute) { $itemData[$attribute->getAttributeCode()] = $attribute->getValue(); } $arrItems['items'][] = $itemData; } $arrItems['totalRecords'] = $searchResult->getTotalCount(); return $arrItems; }