Class: Elastic::Nodes::Term
Constant Summary
collapse
- BOOLEAN_MODE =
[:any, :all]
Instance Attribute Summary collapse
#boost
Instance Method Summary
collapse
#render_field
Methods inherited from Base
#==, #handle_result, #traverse
#pick_nodes, #traverse
Instance Attribute Details
#field ⇒ Object
Returns the value of attribute field.
8
9
10
|
# File 'lib/elastic/nodes/term.rb', line 8
def field
@field
end
|
#mode ⇒ Object
Returns the value of attribute mode.
8
9
10
|
# File 'lib/elastic/nodes/term.rb', line 8
def mode
@mode
end
|
Instance Method Details
#clone ⇒ Object
26
27
28
|
# File 'lib/elastic/nodes/term.rb', line 26
def clone
prepare_clone(super)
end
|
#render(_options = {}) ⇒ Object
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/elastic/nodes/term.rb', line 34
def render(_options = {})
raise ArgumentError, "terms not provided for #{@field}" if !@terms
if @terms.length == 1
{ 'term' => { render_field(_options) => render_boost('value' => @terms.first) } }
elsif @mode == :all && !@terms.empty?
{
'bool' => render_boost(
'must' => @terms.map { |t| { 'term' => { render_field(_options) => t } } }
)
}
else
{ 'terms' => render_boost(render_field(_options) => @terms) }
end
end
|
#simplify ⇒ Object
30
31
32
|
# File 'lib/elastic/nodes/term.rb', line 30
def simplify
prepare_clone(super)
end
|
#terms ⇒ Object
22
23
24
|
# File 'lib/elastic/nodes/term.rb', line 22
def terms
@terms.each
end
|
#terms=(_terms) ⇒ Object
10
11
12
|
# File 'lib/elastic/nodes/term.rb', line 10
def terms=(_terms)
@terms = _terms.dup.to_a
end
|