Class: Qiita::Elasticsearch::Nodes::BoolQueryNode

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

Instance Method Summary collapse

Constructor Details

#initialize(tokens, hierarchal_fields: nil, matchable_fields: nil) ⇒ BoolQueryNode

Returns a new instance of BoolQueryNode.

Parameters:

  • tokens (Array<Qiita::Elasticsearch::Tokens>)
  • hierarchal_fields (Array<String>, nil) (defaults to: nil)
  • matchable_fields (Array<String>, nil) (defaults to: nil)


10
11
12
13
14
# File 'lib/qiita/elasticsearch/nodes/bool_query_node.rb', line 10

def initialize(tokens, hierarchal_fields: nil, matchable_fields: nil)
  @hierarchal_fields = hierarchal_fields
  @matchable_fields = matchable_fields
  @tokens = tokens
end

Instance Method Details

#to_hashObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/qiita/elasticsearch/nodes/bool_query_node.rb', line 16

def to_hash
  case
  when has_only_one_should_token?
    should_query
  when has_only_one_must_token?
    must_query
  else
    {
      "bool" => {
        "must" => must_queries,
        "must_not" => must_not_queries,
        "should" => should_queries,
      }.reject do |key, value|
        value.empty?
      end,
    }
  end
end