Class: Qiita::Elasticsearch::Nodes::TermNode

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita/elasticsearch/nodes/term_node.rb

Constant Summary collapse

DEFAULT_HIERARCHAL_FIELDS =
[]

Instance Method Summary collapse

Constructor Details

#initialize(token, hierarchal_fields: nil) ⇒ TermNode

Returns a new instance of TermNode.

Parameters:



9
10
11
12
# File 'lib/qiita/elasticsearch/nodes/term_node.rb', line 9

def initialize(token, hierarchal_fields: nil)
  @hierarchal_fields = hierarchal_fields
  @token = token
end

Instance Method Details

#to_hashHash

Returns:

  • (Hash)


15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/qiita/elasticsearch/nodes/term_node.rb', line 15

def to_hash
  if has_hierarchal_token?
    {
      "bool" => {
        "should" => [
          {
            "prefix" => {
              @token.field_name => @token.downcased_term + "/",
            },
          },
          {
            "term" => {
              @token.field_name => @token.downcased_term,
            },
          },
        ],
      },
    }
  else
    {
      "term" => {
        @token.field_name => @token.downcased_term,
      },
    }
  end
end