Smile\ElasticsuiteCore\Search\Request\Aggregation\AggregationBuilder::getBucketParams PHP Метод

getBucketParams() приватный Метод

Preprocess aggregations params before they are used into the aggregation factory.
private getBucketParams ( Smile\ElasticsuiteCore\Api\Index\Mapping\FieldInterface $field, array $aggregationParams, array $filters ) : array
$field Smile\ElasticsuiteCore\Api\Index\Mapping\FieldInterface Bucket field.
$aggregationParams array Aggregation params.
$filters array Filter applied to the search request.
Результат array
    private function getBucketParams(FieldInterface $field, array $aggregationParams, array $filters)
    {
        $bucketField = $field->getMappingProperty(FieldInterface::ANALYZER_UNTOUCHED);
        if ($bucketField === null) {
            throw new \LogicException("Unable to init the filter field for {$field->getName()}");
        }
        $bucketParams = ['field' => $bucketField, 'name' => $field->getName(), 'metrics' => [], 'filter' => array_diff_key($filters, [$field->getName() => true])];
        $bucketParams += $aggregationParams['config'];
        if (empty($bucketParams['filter'])) {
            unset($bucketParams['filter']);
        }
        if ($field->isNested() && !isset($bucketParams['nestedPath'])) {
            $bucketParams['nestedPath'] = $field->getNestedPath();
        } elseif ($field->isNested() === false && isset($bucketParams['nestedPath'])) {
            unset($bucketParams['nestedPath']);
        }
        return $bucketParams;
    }