Smile\ElasticsuiteCore\Search\Adapter\Elasticsuite\Request\Aggregation\Builder\Term::buildBucket PHP Метод

buildBucket() публичный Метод

Build the aggregation.
public buildBucket ( Smile\ElasticsuiteCore\Search\Request\BucketInterface $bucket ) : array
$bucket Smile\ElasticsuiteCore\Search\Request\BucketInterface Term bucket.
Результат array
    public function buildBucket(BucketInterface $bucket)
    {
        $aggregation = ['terms' => ['field' => $bucket->getField(), 'size' => $bucket->getSize()]];
        if (in_array($bucket->getSortOrder(), [$bucket::SORT_ORDER_COUNT, $bucket::SORT_ORDER_MANUAL])) {
            $aggregation['terms']['order'] = [$bucket::SORT_ORDER_COUNT => SortOrderInterface::SORT_DESC];
        } elseif ($bucket->getSortOrder() == $bucket::SORT_ORDER_TERM) {
            $aggregation['terms']['order'] = [$bucket::SORT_ORDER_TERM => SortOrderInterface::SORT_ASC];
        } elseif ($bucket->getSortOrder() == $bucket::SORT_ORDER_RELEVANCE && !$bucket->isNested()) {
            $aggregation['aggregations']['termRelevance'] = ['avg' => ['script' => $bucket::SORT_ORDER_RELEVANCE]];
            $aggregation['terms']['order'] = ['termRelevance' => SortOrderInterface::SORT_DESC];
        }
        return $aggregation;
    }