Code Duplication    Length = 45-50 lines in 13 locations

src/Query/Span/SpanNotQuery.php 1 location

@@ 21-67 (lines=47) @@
18
 *
19
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-span-not-query.html
20
 */
21
class SpanNotQuery implements SpanQueryInterface
22
{
23
    use ParametersTrait;
24
25
    /**
26
     * @var SpanQueryInterface
27
     */
28
    private $include;
29
30
    /**
31
     * @var SpanQueryInterface
32
     */
33
    private $exclude;
34
35
    /**
36
     * @param SpanQueryInterface $include
37
     * @param SpanQueryInterface $exclude
38
     * @param array              $parameters
39
     */
40
    public function __construct(SpanQueryInterface $include, SpanQueryInterface $exclude, array $parameters = [])
41
    {
42
        $this->include = $include;
43
        $this->exclude = $exclude;
44
        $this->setParameters($parameters);
45
    }
46
47
    /**
48
     * {@inheritdoc}
49
     */
50
    public function getType()
51
    {
52
        return 'span_not';
53
    }
54
55
    /**
56
     * {@inheritdoc}
57
     */
58
    public function toArray()
59
    {
60
        $query = [
61
            'include' => $this->include->toArray(),
62
            'exclude' => $this->exclude->toArray(),
63
        ];
64
65
        return [$this->getType() => $this->processArray($query)];
66
    }
67
}
68

src/Query/FullText/CommonTermsQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-common-terms-query.html
21
 */
22
class CommonTermsQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $field;
30
31
    /**
32
     * @var string
33
     */
34
    private $query;
35
36
    /**
37
     * @param string $field
38
     * @param string $query
39
     * @param array  $parameters
40
     */
41
    public function __construct($field, $query, array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->query = $query;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'common';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'query' => $this->query,
63
        ];
64
65
        $output = [
66
            $this->field => $this->processArray($query),
67
        ];
68
69
        return [$this->getType() => $output];
70
    }
71
}
72

src/Query/FullText/MatchQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html
21
 */
22
class MatchQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $field;
30
31
    /**
32
     * @var string
33
     */
34
    private $query;
35
36
    /**
37
     * @param string $field
38
     * @param string $query
39
     * @param array  $parameters
40
     */
41
    public function __construct($field, $query, array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->query = $query;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'match';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'query' => $this->query,
63
        ];
64
65
        $output = [
66
            $this->field => $this->processArray($query),
67
        ];
68
69
        return [$this->getType() => $output];
70
    }
71
}
72

src/Query/FullText/MultiMatchQuery.php 1 location

@@ 22-70 (lines=49) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-multi-match-query.html
21
 */
22
class MultiMatchQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var array
28
     */
29
    private $fields = [];
30
31
    /**
32
     * @var string
33
     */
34
    private $query;
35
36
    /**
37
     * @param array  $fields
38
     * @param string $query
39
     * @param array  $parameters
40
     */
41
    public function __construct(array $fields, $query, array $parameters = [])
42
    {
43
        $this->fields = $fields;
44
        $this->query = $query;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'multi_match';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'fields' => $this->fields,
63
            'query' => $this->query,
64
        ];
65
66
        $output = $this->processArray($query);
67
68
        return [$this->getType() => $output];
69
    }
70
}
71

src/Query/Geo/GeoPolygonQuery.php 1 location

@@ 22-66 (lines=45) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-polygon-query.html
21
 */
22
class GeoPolygonQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $field;
30
31
    /**
32
     * @var array
33
     */
34
    private $points;
35
36
    /**
37
     * @param string $field
38
     * @param array  $points
39
     * @param array  $parameters
40
     */
41
    public function __construct($field, array $points = [], array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->points = $points;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'geo_polygon';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [$this->field => ['points' => $this->points]];
62
        $output = $this->processArray($query);
63
64
        return [$this->getType() => $output];
65
    }
66
}
67

src/Query/GeohashCellQuery.php 1 location

@@ 23-68 (lines=46) @@
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geohash-cell-query.html
21
 * @deprecated Use geohash_grid aggregation instead.
22
 */
23
class GeohashCellQuery implements BuilderInterface
24
{
25
    use ParametersTrait;
26
27
    /**
28
     * @var string
29
     */
30
    private $field;
31
32
    /**
33
     * @var mixed
34
     */
35
    private $location;
36
37
    /**
38
     * @param string $field
39
     * @param mixed  $location
40
     * @param array  $parameters
41
     */
42
    public function __construct($field, $location, array $parameters = [])
43
    {
44
        $this->field = $field;
45
        $this->location = $location;
46
47
        $this->setParameters($parameters);
48
    }
49
50
    /**
51
     * {@inheritdoc}
52
     */
53
    public function getType()
54
    {
55
        return 'geohash_cell';
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61
    public function toArray()
62
    {
63
        $query = [$this->field => $this->location];
64
        $output = $this->processArray($query);
65
66
        return [$this->getType() => $output];
67
    }
68
}
69

src/Query/Joining/HasChildQuery.php 1 location

@@ 22-70 (lines=49) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-child-query.html
21
 */
22
class HasChildQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $type;
30
31
    /**
32
     * @var BuilderInterface
33
     */
34
    private $query;
35
36
    /**
37
     * @param string           $type
38
     * @param BuilderInterface $query
39
     * @param array            $parameters
40
     */
41
    public function __construct($type, BuilderInterface $query, array $parameters = [])
42
    {
43
        $this->type = $type;
44
        $this->query = $query;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'has_child';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'type' => $this->type,
63
            'query' => $this->query->toArray(),
64
        ];
65
66
        $output = $this->processArray($query);
67
68
        return [$this->getType() => $output];
69
    }
70
}
71

src/Query/Joining/HasParentQuery.php 1 location

@@ 22-70 (lines=49) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-has-parent-query.html
21
 */
22
class HasParentQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $parentType;
30
31
    /**
32
     * @var BuilderInterface
33
     */
34
    private $query;
35
36
    /**
37
     * @param string           $parentType
38
     * @param BuilderInterface $query
39
     * @param array            $parameters
40
     */
41
    public function __construct($parentType, BuilderInterface $query, array $parameters = [])
42
    {
43
        $this->parentType = $parentType;
44
        $this->query = $query;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'has_parent';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'parent_type' => $this->parentType,
63
            'query' => $this->query->toArray(),
64
        ];
65
66
        $output = $this->processArray($query);
67
68
        return [$this->getType() => $output];
69
    }
70
}
71

src/Query/TermLevel/FuzzyQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html
21
 */
22
class FuzzyQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $field;
30
31
    /**
32
     * @var string
33
     */
34
    private $value;
35
36
    /**
37
     * @param string $field
38
     * @param string $value
39
     * @param array  $parameters
40
     */
41
    public function __construct($field, $value, array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->value = $value;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'fuzzy';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'value' => $this->value,
63
        ];
64
65
        $output = [
66
            $this->field => $this->processArray($query),
67
        ];
68
69
        return [$this->getType() => $output];
70
    }
71
}
72

src/Query/TermLevel/PrefixQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-prefix-query.html
21
 */
22
class PrefixQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    protected $field;
30
31
    /**
32
     * @var string
33
     */
34
    protected $value;
35
36
    /**
37
     * @param string $field      Field name.
38
     * @param string $value      Value.
39
     * @param array  $parameters Optional parameters.
40
     */
41
    public function __construct($field, $value, array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->value = $value;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'prefix';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'value' => $this->value,
63
        ];
64
65
        $output = [
66
            $this->field => $this->processArray($query),
67
        ];
68
69
        return [$this->getType() => $output];
70
    }
71
}
72

src/Query/TermLevel/RegexpQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html
21
 */
22
class RegexpQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string Field to be queried.
28
     */
29
    private $field;
30
31
    /**
32
     * @var string The actual regexp value to be used.
33
     */
34
    private $regexpValue;
35
36
    /**
37
     * @param string $field
38
     * @param string $regexpValue
39
     * @param array  $parameters
40
     */
41
    public function __construct($field, $regexpValue, array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->regexpValue = $regexpValue;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'regexp';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'value' => $this->regexpValue,
63
        ];
64
65
        $output = [
66
            $this->field => $this->processArray($query),
67
        ];
68
69
        return [$this->getType() => $output];
70
    }
71
}
72

src/Query/TermLevel/TermsQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html
21
 */
22
class TermsQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $field;
30
31
    /**
32
     * @var array
33
     */
34
    private $terms;
35
36
    /**
37
     * Constructor.
38
     *
39
     * @param string $field      Field name
40
     * @param array  $terms      An array of terms
41
     * @param array  $parameters Optional parameters
42
     */
43
    public function __construct($field, $terms, array $parameters = [])
44
    {
45
        $this->field = $field;
46
        $this->terms = $terms;
47
        $this->setParameters($parameters);
48
    }
49
50
    /**
51
     * {@inheritdoc}
52
     */
53
    public function getType()
54
    {
55
        return 'terms';
56
    }
57
58
    /**
59
     * {@inheritdoc}
60
     */
61
    public function toArray()
62
    {
63
        $query = [
64
            $this->field => $this->terms,
65
        ];
66
67
        $output = $this->processArray($query);
68
69
        return [$this->getType() => $output];
70
    }
71
}
72

src/Query/TermLevel/WildcardQuery.php 1 location

@@ 22-71 (lines=50) @@
19
 *
20
 * @link https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html
21
 */
22
class WildcardQuery implements BuilderInterface
23
{
24
    use ParametersTrait;
25
26
    /**
27
     * @var string
28
     */
29
    private $field;
30
31
    /**
32
     * @var string
33
     */
34
    private $value;
35
36
    /**
37
     * @param string $field
38
     * @param string $value
39
     * @param array  $parameters
40
     */
41
    public function __construct($field, $value, array $parameters = [])
42
    {
43
        $this->field = $field;
44
        $this->value = $value;
45
        $this->setParameters($parameters);
46
    }
47
48
    /**
49
     * {@inheritdoc}
50
     */
51
    public function getType()
52
    {
53
        return 'wildcard';
54
    }
55
56
    /**
57
     * {@inheritdoc}
58
     */
59
    public function toArray()
60
    {
61
        $query = [
62
            'value' => $this->value,
63
        ];
64
65
        $output = [
66
            $this->field => $this->processArray($query),
67
        ];
68
69
        return [$this->getType() => $output];
70
    }
71
}
72