class Queries::MatchQueryBuilder

Constants

NAME

@params: analyzer, auto_generate_synonyms_phrase_query, cutoff_frequency, field_name, fuzziness, fuzzy_transposition,

      lenient, max_expansions, minimum_should_match, operator, prefix_length, value, zero_terms_query
analyzer: analyzer to be used for this query
auto_generate_synonyms_phrase_query: The match query supports multi-terms synonym expansion with the synonym_graph token filter.
                                     When this filter is used, the parser creates a phrase query for each multi-terms synonyms.
                                     For example, the following synonym: "ny, new york" would produce:
                                     (ny OR ("new york"))
cutoff_frequency: cutoff value in [0..1] (or absolute number >=1) representing the maximum threshold of a terms document frequency 
                  to be considered a low frequency term.
field_name: name of the field to be queried
fuzziness: fuzziness used when evaluated to a fuzzy query type
fuzzy_transposition: fuzzy transpositions (ab → ba) are allowed by default but can be disabled by setting fuzzy_transpositions to false
max_expansions: max_expansions limit the number of matching docs that will be returned
minimum_should_match: minimum number of cases to match in case of or query
value: value to be matched in that field in the documents
zero_terms_query: If the analyzer used removes all tokens in a query like a stop filter does, the default behavior is to match no documents at all.
                  In order to change that the zero_terms_query option can be used, which accepts none (default) and all which corresponds to a match_all query.
fuzzy_prefix_length: prefix length provides the number of characters from beginning that have to be exactly matched

Public Class Methods

new(field_name: , value: nil) click to toggle source
# File lib/queries/match_query_builder.rb, line 28
def initialize field_name: , value: nil
  @field_name = field_name
  @value = value
  @zero_terms_query = nil
  @analyzer = nil
  @auto_generate_synonyms_phrase_query = nil
  @cutoff_frequency = nil
  @fuzziness = nil
  @fuzzy_transpositions = nil
  @max_expansions = nil
  @minimum_should_match = nil
  @operator = nil
  @prefix_length = nil
  @zero_terms_query = nil
end

Public Instance Methods

analyzer(value) click to toggle source

sets analyzer

# File lib/queries/match_query_builder.rb, line 82
def analyzer value
  @analyzer = value
  return self
end
analyzer_expr() click to toggle source
SEARCH ANALYZER ##########

return analyzer

# File lib/queries/match_query_builder.rb, line 78
def analyzer_expr
  return @analyzer
end
auto_generate_synonyms_phrase_query(value) click to toggle source

sets auto_generate_synonyms_phrase_query

# File lib/queries/match_query_builder.rb, line 94
def auto_generate_synonyms_phrase_query value
  @auto_generate_synonyms_phrase_query = value
  return self
end
auto_generate_synonyms_phrase_query_expr() click to toggle source
AUTO GENERATE SYNONYMS PHRASE QUERY ##########

returns auto_generate_synonyms_phrase_query

# File lib/queries/match_query_builder.rb, line 90
def auto_generate_synonyms_phrase_query_expr
  return @auto_generate_synonyms_phrase_query
end
cutoff_frequency(value) click to toggle source

sets cutoff_frequency

# File lib/queries/match_query_builder.rb, line 106
def cutoff_frequency value
  @cutoff_frequency = value
  return self
end
cutoff_frequency_expr() click to toggle source
CUTOFF FREQUENCY ##########

returns cutoff_frequency

# File lib/queries/match_query_builder.rb, line 102
def cutoff_frequency_expr
  return @cutoff_frequency
end
field_name_expr() click to toggle source
FIELD NAME ##########

returns field_name

# File lib/queries/match_query_builder.rb, line 66
def field_name_expr
  return @field_name
end
fuzziness(fuzziness) click to toggle source

sets fuzziness

# File lib/queries/match_query_builder.rb, line 118
def fuzziness fuzziness
  @fuzziness = fuzziness.fuzziness
  return self
end
fuzziness_expr() click to toggle source
FUZZINESS VALUE ##########

returns fuzziness

# File lib/queries/match_query_builder.rb, line 114
def fuzziness_expr
  return @fuzziness
end
fuzzy_prefix_length(value) click to toggle source

sets prefix_length

# File lib/queries/match_query_builder.rb, line 129
def fuzzy_prefix_length value
  @prefix_length = value
  return self
end
fuzzy_prefix_length_expr() click to toggle source
PREFIX LENGTH ########

returns prefix_length

# File lib/queries/match_query_builder.rb, line 125
def fuzzy_prefix_length_expr
  return @prefix_length
end
fuzzy_transpositions(value) click to toggle source

sets fuzzy_transpositions

# File lib/queries/match_query_builder.rb, line 151
def fuzzy_transpositions value
  @fuzzy_transpositions = value
  return self
end
fuzzy_transpositions_expr() click to toggle source
FUZZY TRANSPOSITIONS ##########

returns fuzzy_transpositions

# File lib/queries/match_query_builder.rb, line 147
def fuzzy_transpositions_expr
  return @fuzzy_transpositions
end
max_expansions(value) click to toggle source

sets max_expansions

# File lib/queries/match_query_builder.rb, line 140
def max_expansions value
  @max_expansions = value
  return self    
end
max_expansions_expr() click to toggle source
MAX EXPANSIONS ##########

returns max_expansions

# File lib/queries/match_query_builder.rb, line 136
def max_expansions_expr
  return @max_expansions
end
minimum_should_match(value) click to toggle source

sets minimum_should_match

# File lib/queries/match_query_builder.rb, line 162
def minimum_should_match value
  @minimum_should_match = value
  return self
end
minimum_should_match_expr() click to toggle source
MINIMUM SHOULD ##########

returns minimum_should_match

# File lib/queries/match_query_builder.rb, line 158
def minimum_should_match_expr
  return @minimum_should_match
end
query() click to toggle source
# File lib/queries/match_query_builder.rb, line 44
def query
  query = {}
  match_query = {}
  field_options = self.common_query
  field_options[:query] = @value
  field_options[:operator] = @operator if @operator.present?
  field_options[:analyzer] = @analyzer if @analyzer.present?
  field_options[:auto_generate_synonyms_phrase_query] = @auto_generate_synonyms_phrase_query if @auto_generate_synonyms_phrase_query.present?
  field_options[:cutoff_frequency] = @cutoff_frequency if @cutoff_frequency.present?
  field_options[:fuzzy_prefix_length] = @fuzzy_prefix_length if @fuzzy_prefix_length.present?
  field_options[:max_expansions] = @max_expansions if @max_expansions.present?
  field_options[:fuzzy_transpositions] = @fuzzy_transpositions if @fuzzy_transpositions.present?
  field_options[:minimum_should_match] = @minimum_should_match if @minimum_should_match.present?
  field_options[:zero_terms_query] = @zero_terms_query if @zero_terms_query.present?
  field_options[:fuzziness] = @fuzziness if @fuzziness.present?
  match_query[@field_name.to_s.intern] = field_options
  query[name.intern] = match_query
  return query
end
value_expr() click to toggle source
FIELD VALUE ##########

returns value

# File lib/queries/match_query_builder.rb, line 72
def value_expr
  return @value
end
zero_terms_query(zero_terms_query) click to toggle source

sets zero_terms_query

# File lib/queries/match_query_builder.rb, line 173
def zero_terms_query zero_terms_query
  @zero_terms_query = zero_terms_query.zero_term
  return self
end
zero_terms_query_expr() click to toggle source
ZERO TERMS ##########

returns zero_terms_query

# File lib/queries/match_query_builder.rb, line 169
def zero_terms_query_expr
  return @zero_terms_query
end