Class: Qiita::Elasticsearch::QueryBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(date_fields: nil, downcased_fields: nil, hierarchal_fields: nil, filterable_fields: nil, int_fields: nil, matchable_fields: nil, time_zone: nil) ⇒ QueryBuilder

Returns a new instance of QueryBuilder.

Parameters:

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


16
17
18
19
20
21
22
23
24
# File 'lib/qiita/elasticsearch/query_builder.rb', line 16

def initialize(date_fields: nil, downcased_fields: nil, hierarchal_fields: nil, filterable_fields: nil, int_fields: nil, matchable_fields: nil, time_zone: nil)
  @date_fields = date_fields
  @downcased_fields = downcased_fields
  @filterable_fields = filterable_fields
  @hierarchal_fields = hierarchal_fields
  @int_fields = int_fields
  @matchable_fields = matchable_fields
  @time_zone = time_zone
end

Instance Method Details

#build(query_string) ⇒ Hash

Parameters:

  • query_string (String)

    Raw query string

Returns:

  • (Hash)


28
29
30
31
32
33
34
35
36
37
# File 'lib/qiita/elasticsearch/query_builder.rb', line 28

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
rescue Error
  Nodes::NullNode.new.to_hash
end