Skip to content
Snippets Groups Projects
Terms.php 508 B
Newer Older
Pavel's avatar
Pavel committed
<?php

namespace IQDEV\ElasticSearch\Search\Aggs;

use IQDEV\ElasticSearch\Esable;

final class Terms implements Esable
{
    private array $options = [];

    public function __construct(
        private string $field
    ) {
Pavel's avatar
Pavel committed
    }

    public function setSize(int $size): self
    {
        $this->options['size'] = $size;
Pavel's avatar
Pavel committed
        return $this;
    }

    public function es(): array
    {
Pavel's avatar
Pavel committed
        $data = $this->options;
Pavel's avatar
Pavel committed
        $data['field'] = $this->field;

        return ['terms' => $data];
    }
Pavel's avatar
Pavel committed
}