Class: Qiita::Elasticsearch::QueryBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(downcased_fields: nil, hierarchal_fields: nil, filterable_fields: nil, matchable_fields: nil, range_fields: nil) ⇒ QueryBuilder

Returns a new instance of QueryBuilder.

Parameters:

  • downcased_fields (Array<String>, nil) (defaults to: nil)
  • filterable_fields (Array<String>, nil) (defaults to: nil)
  • hierarchal_fields (Array<String>, nil) (defaults to: nil)
  • matchable_fields (Array<String>, nil) (defaults to: nil)
  • range_fields (Array<String>, nil) (defaults to: nil)


13
14
15
16
17
18
19
# File 'lib/qiita/elasticsearch/query_builder.rb', line 13

def initialize(downcased_fields: nil, hierarchal_fields: nil, filterable_fields: nil, matchable_fields: nil, range_fields: nil)
  @downcased_fields = downcased_fields
  @hierarchal_fields = hierarchal_fields
  @filterable_fields = filterable_fields
  @matchable_fields = matchable_fields
  @range_fields = range_fields
end

Instance Method Details

#build(query_string) ⇒ Hash

Parameters:

  • query_string (String)

    Raw query string

Returns:

  • (Hash)


23
24
25
26
27
28
29
30
# File 'lib/qiita/elasticsearch/query_builder.rb', line 23

def build(query_string)
  tokens = tokenizer.tokenize(query_string)
  if tokens.size.zero?
    Nodes::NullNode.new.to_hash
  else
    Nodes::OrSeparatableNode.new(tokens).to_hash
  end
end