Passed
Push — master ( 43e152...3c8c2e )
by Christopher
01:43
created

Suggestion   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 87
Duplicated Lines 0 %

Test Coverage

Coverage 75%

Importance

Changes 0
Metric Value
eloc 29
dl 0
loc 87
ccs 24
cts 32
cp 0.75
rs 10
c 0
b 0
f 0
wmc 5

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 14 2
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
        $startTime = $this->initMetricStartTime();
17
        
18
        $result = ElasticDsl::getEsClient()->suggest([
19
            'index' => $this->getEsIndex(),
20
            'body' => $this->toDsl()
21
        ]);
22
    
23
        if ($startTime) {
24
            $this->setHistogramMetric($startTime, 'suggest');
25
        }
26
    
27
        return $result;
28
    }
29
    
30
    /**
31
     * Term
32
     *
33
     * @param string $name
34
     * @param string $text
35
     * @param string $field
36
     * @param array $params
37
     * @return Suggestion
38
     */
39 1
    public function term(string $name, string $text, string $field, array $params = []): Suggestion
40
    {
41 1
        $this->search->addSuggest(new Suggest(
42 1
            $name,
43 1
            'term',
44 1
            $text,
45 1
            $field,
46 1
            $params
47
        ));
48
        
49 1
        return $this;
50
    }
51
    
52
    /**
53
     * Phrase
54
     *
55
     * @param string $name
56
     * @param string $text
57
     * @param string $field
58
     * @param array $params
59
     * @return Suggestion
60
     */
61 1
    public function phrase(string $name, string $text, string $field, array $params = []): Suggestion
62
    {
63 1
        $this->search->addSuggest(new Suggest(
64 1
            $name,
65 1
            'phrase',
66 1
            $text,
67 1
            $field,
68 1
            $params
69
        ));
70
        
71 1
        return $this;
72
    }
73
    
74
    /**
75
     * Term
76
     *
77
     * @param string $name
78
     * @param string $text
79
     * @param string $field
80
     * @param array $params
81
     * @return Suggestion
82
     */
83 1
    public function completion(string $name, string $text, string $field, array $params = []): Suggestion
84
    {
85 1
        $this->search->addSuggest(new Suggest(
86 1
            $name,
87 1
            'completion',
88 1
            $text,
89 1
            $field,
90 1
            $params
91
        ));
92
        
93 1
        return $this;
94
    }
95
}
96