Пример #1
0
 /**
  * @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;
 }
Пример #2
0
 /**
  * @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)]);
 }
Пример #3
0
 /**
  * @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;
 }