Completed
Pull Request — master (#1889)
by
unknown
02:43
created

AbstractTermsAggregation::setShardSize()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
namespace Elastica\Aggregation;
4
5
/**
6
 * Class AbstractTermsAggregation.
7
 */
8
abstract class AbstractTermsAggregation extends AbstractSimpleAggregation
9
{
10
    use Traits\ShardSizeTrait;
11
12
    public const EXECUTION_HINT_MAP = 'map';
13
    public const EXECUTION_HINT_GLOBAL_ORDINALS = 'global_ordinals';
14
15
    /**
16
     * Set the minimum number of documents in which a term must appear in order to be returned in a bucket.
17
     *
18
     * @return $this
19
     */
20
    public function setMinimumDocumentCount(int $count): self
21
    {
22
        return $this->setParam('min_doc_count', $count);
23
    }
24
25
    /**
26
     * Filter documents to include based on a regular expression.
27
     *
28
     * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/regexp-syntax.html for syntax
29
     *
30
     * @param string $pattern a regular expression, following the Regexp syntax
31
     *
32
     * @return $this
33
     */
34
    public function setInclude(string $pattern): self
35
    {
36
        return $this->setParam('include', $pattern);
37
    }
38
39
    /**
40
     * Filter documents to include based on a list of exact values.
41
     *
42
     * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_filtering_values_with_exact_values_2
43
     *
44
     * @param string[] $values
45
     *
46
     * @return $this
47
     */
48
    public function setIncludeAsExactMatch(array $values): self
49
    {
50
        return $this->setParam('include', $values);
51
    }
52
53
    /**
54
     * Set the aggregation filter to use partitions.
55
     *
56
     * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_filtering_values_with_partitions
57
     *
58
     * @return $this
59
     */
60
    public function setIncludeWithPartitions(int $partition, int $numPartitions): self
61
    {
62
        return $this->setParam('include', [
63
            'partition' => $partition,
64
            'num_partitions' => $numPartitions,
65
        ]);
66
    }
67
68
    /**
69
     * Filter documents to exclude based on a regular expression.
70
     *
71
     * @param string $pattern a regular expression
72
     *
73
     * @return $this
74
     */
75
    public function setExclude(string $pattern): self
76
    {
77
        return $this->setParam('exclude', $pattern);
78
    }
79
80
    /**
81
     * Filter documents to exclude based on a list of exact values.
82
     *
83
     * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#_filtering_values_with_exact_values_2
84
     *
85
     * @param string[] $values
86
     *
87
     * @return $this
88
     */
89
    public function setExcludeAsExactMatch(array $values): self
90
    {
91
        return $this->setParam('exclude', $values);
92
    }
93
94
    /**
95
     * Sets the amount of terms to be returned.
96
     *
97
     * @return $this
98
     */
99
    public function setSize(int $size): self
100
    {
101
        return $this->setParam('size', $size);
102
    }
103
104
    /**
105
     * Instruct Elasticsearch to use direct field data or ordinals of the field values to execute this aggregation.
106
     * The execution hint will be ignored if it is not applicable.
107
     *
108
     * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-terms-aggregation.html#search-aggregations-bucket-terms-aggregation-execution-hint
109
     *
110
     * @param string $hint Execution hint, use one of self::EXECUTION_HINT_MAP or self::EXECUTION_HINT_GLOBAL_ORDINALS
111
     *
112
     * @return $this
113
     */
114
    public function setExecutionHint(string $hint): self
115
    {
116
        return $this->setParam('execution_hint', $hint);
117
    }
118
}
119