Class: Qiita::Elasticsearch::QueryBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(matchable_fields: nil, filterable_fields: nil) ⇒ QueryBuilder

Returns a new instance of QueryBuilder.

Parameters:

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


10
11
12
13
# File 'lib/qiita/elasticsearch/query_builder.rb', line 10

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

Instance Method Details

#build(query_string) ⇒ Hash

Parameters:

  • query_string (String)

    Raw query string

Returns:

  • (Hash)


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

def build(query_string)
  tokens = parser.parse(query_string)
  if tokens.size.zero?
    Nodes::NullNode.new.to_hash
  else
    Nodes::OrSeparatableNode.new(
      tokens,
      matchable_fields: @matchable_fields,
    ).to_hash
  end
end