class Qiita::Elasticsearch::QueryBuilder

Public Class Methods

new(all_fields: nil, date_fields: nil, downcased_fields: nil, hierarchal_fields: nil, filterable_fields: nil, int_fields: nil, default_fields: nil, time_zone: nil, matchable_options: nil, field_mapping: nil) click to toggle source

@param [Array<String>, nil] all_fields @param [Array<String>, nil] date_fields @param [Array<String>, nil] downcased_fields @param [Array<String>, nil] filterable_fields @param [Array<String>, nil] hierarchal_fields @param [Array<String>, nil] int_fields @param [Array<String>, nil] default_fields @param [String, nil] time_zone @param [Hash, nil] matchable_options @param [Hash, nil] field_mapping for field aliasing

# File lib/qiita/elasticsearch/query_builder.rb, line 18
def initialize(all_fields: nil, date_fields: nil, downcased_fields: nil, hierarchal_fields: nil,
               filterable_fields: nil, int_fields: nil, default_fields: nil, time_zone: nil, matchable_options: nil, field_mapping: nil)
  @all_fields = all_fields
  @date_fields = date_fields
  @downcased_fields = downcased_fields
  @filterable_fields = filterable_fields
  @hierarchal_fields = hierarchal_fields
  @int_fields = int_fields
  @default_fields = default_fields
  @time_zone = time_zone
  @matchable_options = matchable_options
  @field_mapping = field_mapping
end

Public Instance Methods

build(query_string) click to toggle source

@param [String] query_string Raw query string @return [Qiita::Elasticsearch::Query]

# File lib/qiita/elasticsearch/query_builder.rb, line 34
def build(query_string)
  Query.new(
    tokenizer.tokenize(query_string),
    downcased_fields: @downcased_fields,
    filterable_fields: @filterable_fields,
    hierarchal_fields: @hierarchal_fields,
    int_fields: @int_fields,
    default_fields: @default_fields,
    time_zone: @time_zone,
  )
end

Private Instance Methods

tokenizer() click to toggle source
# File lib/qiita/elasticsearch/query_builder.rb, line 48
def tokenizer
  @tokenizer ||= Tokenizer.new(
    all_fields: @all_fields,
    date_fields: @date_fields,
    downcased_fields: @downcased_fields,
    filterable_fields: @filterable_fields,
    hierarchal_fields: @hierarchal_fields,
    int_fields: @int_fields,
    default_fields: @default_fields,
    time_zone: @time_zone,
    matchable_options: @matchable_options,
    field_mapping: @field_mapping
  )
end