Completed
Pull Request — master (#1)
by Christopher
08:14 queued 02:30
created

Suggestion   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 79
Duplicated Lines 0 %

Test Coverage

Coverage 85.71%

Importance

Changes 0
Metric Value
eloc 25
dl 0
loc 79
ccs 24
cts 28
cp 0.8571
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A term() 0 11 1
A phrase() 0 11 1
A completion() 0 11 1
A get() 0 5 1
1
<?php
2
namespace Triadev\Es\Dsl\Dsl;
3
4
use ONGR\ElasticsearchDSL\Suggest\Suggest;
5
use Triadev\Es\Dsl\Facade\ElasticDsl;
6
7
class Suggestion extends AbstractSearch
8
{
9
    /**
10
     * Get suggestion result as array
11
     *
12
     * @return array
13
     */
14
    public function get() : array
15
    {
16
        return ElasticDsl::getEsClient()->suggest([
17
            'index' => $this->getEsIndex(),
18
            'body' => $this->toDsl()
19
        ]);
20
    }
21
    
22
    /**
23
     * Term
24
     *
25
     * @param string $name
26
     * @param string $text
27
     * @param string $field
28
     * @param array $params
29
     * @return Suggestion
30
     */
31 1
    public function term(string $name, string $text, string $field, array $params = []): Suggestion
32
    {
33 1
        $this->search->addSuggest(new Suggest(
34 1
            $name,
35 1
            'term',
36 1
            $text,
37 1
            $field,
38 1
            $params
39
        ));
40
        
41 1
        return $this;
42
    }
43
    
44
    /**
45
     * Phrase
46
     *
47
     * @param string $name
48
     * @param string $text
49
     * @param string $field
50
     * @param array $params
51
     * @return Suggestion
52
     */
53 1
    public function phrase(string $name, string $text, string $field, array $params = []): Suggestion
54
    {
55 1
        $this->search->addSuggest(new Suggest(
56 1
            $name,
57 1
            'phrase',
58 1
            $text,
59 1
            $field,
60 1
            $params
61
        ));
62
        
63 1
        return $this;
64
    }
65
    
66
    /**
67
     * Term
68
     *
69
     * @param string $name
70
     * @param string $text
71
     * @param string $field
72
     * @param array $params
73
     * @return Suggestion
74
     */
75 1
    public function completion(string $name, string $text, string $field, array $params = []): Suggestion
76
    {
77 1
        $this->search->addSuggest(new Suggest(
78 1
            $name,
79 1
            'completion',
80 1
            $text,
81 1
            $field,
82 1
            $params
83
        ));
84
        
85 1
        return $this;
86
    }
87
}
88