/** * @param array $aggregations * @param \Generated\Shared\Transfer\FacetConfigTransfer $facetConfigTransfer * * @return array */ protected function getAggregationRawData(array $aggregations, $facetConfigTransfer) { $facetName = $facetConfigTransfer->getName(); $fieldName = $facetConfigTransfer->getFieldName(); if ($facetConfigTransfer->getIsMultiValued() === true) { $aggregation = $aggregations[FacetQueryExpanderPlugin::AGGREGATION_GLOBAL_PREFIX . $facetName][FacetQueryExpanderPlugin::AGGREGATION_FILTER_NAME][$fieldName]; } else { $aggregation = $aggregations[$fieldName]; } return $aggregation; }
/** * @return \Elastica\Query\Nested */ public function createNestedQuery() { $fieldName = $this->facetConfigTransfer->getFieldName(); $nestedFieldName = $this->facetConfigTransfer->getName(); return $this->bindMultipleNestedQuery($fieldName, [$this->queryBuilder->createTermQuery($fieldName . self::FACET_NAME_SUFFIX, $nestedFieldName), $this->queryBuilder->createRangeQuery($fieldName . self::FACET_VALUE_SUFFIX, $this->minValue, $this->maxValue)]); }
/** * @param \Generated\Shared\Transfer\FacetConfigTransfer $facetConfigTransfer * @param \Elastica\Query\BoolQuery $boolQuery * @param \Elastica\Query\AbstractQuery[] $facetFilters * * @return \Elastica\Query\BoolQuery */ protected function getGlobalAggregationFilters(FacetConfigTransfer $facetConfigTransfer, BoolQuery $boolQuery, array $facetFilters) { $aggregationFilterQuery = clone $boolQuery; // add filters for facet aggregation which is not related to the current facet so we can get the right counts foreach ($facetFilters as $name => $query) { if ($name !== $facetConfigTransfer->getName()) { $aggregationFilterQuery->addFilter($query); } } return $aggregationFilterQuery; }