class Qiita::Elasticsearch::Token

Attributes

field_name[R]

@return [String, nil] @note `xxxxxxxxxxxx:yyyyyyyyyyy`

^^^^^^^^^^^^
 field_name
options[RW]

@return [Hash]

term[R]

@return [String] @note `xxxxxxxxxxxx:yyyyyyyyyyy`

^^^^^^^^^^^
   term

Public Class Methods

new(downcased: nil, field_name: nil, negative: nil, quoted: nil, filter: nil, term: nil, token_string: nil, options: nil) click to toggle source

@param [true, false] downcased True if given term must be downcased on query representation @param [String, nil] field_name Field name part @param [true, false] negative True if this term represents negative token (e.g. “-Perl”) @param [true, false] quoted Given term is quoted or not @param [true, false] filter True if this term should be used as filter @param [String] term Term part @param [String] token_string Original entire string @param [Hash] options Optional search parameters

# File lib/qiita/elasticsearch/token.rb, line 27
def initialize(downcased: nil, field_name: nil, negative: nil, quoted: nil, filter: nil, term: nil, token_string: nil, options: nil)
  @downcased = downcased
  @field_name = field_name
  @negative = negative
  @quoted = quoted
  @filter = filter
  @term = term
  @token_string = token_string
  @options = options
end

Public Instance Methods

downcased?() click to toggle source

@return [true, false] True if its term must be treated with downcased

# File lib/qiita/elasticsearch/token.rb, line 39
def downcased?
  !!@downcased
end
downcased_term() click to toggle source
# File lib/qiita/elasticsearch/token.rb, line 43
def downcased_term
  @downcased_term ||= term.downcase
end
filter?() click to toggle source
# File lib/qiita/elasticsearch/token.rb, line 47
def filter?
  !!@filter || negative?
end
must?() click to toggle source
# File lib/qiita/elasticsearch/token.rb, line 56
def must?
  !field_name.nil? && positive?
end
must_not?() click to toggle source
# File lib/qiita/elasticsearch/token.rb, line 60
def must_not?
  negative?
end
negative?() click to toggle source

@return [true, false] True if this token is for negative filter @note `Ruby -Perl`

^^^^^
This
# File lib/qiita/elasticsearch/token.rb, line 68
def negative?
  !!@negative
end
or?() click to toggle source

@return [true, false] True if this token is for OR filter @note `Ruby OR Perl`

 ^^
This
# File lib/qiita/elasticsearch/token.rb, line 76
def or?
  @token_string.downcase == "or"
end
positive?() click to toggle source

@return [true, false] Opposite of negative?

# File lib/qiita/elasticsearch/token.rb, line 81
def positive?
  !negative?
end
proper_cased_term() click to toggle source

@return [String] Downcased or not-downcased term

# File lib/qiita/elasticsearch/token.rb, line 86
def proper_cased_term
  if downcased?
    downcased_term
  else
    term
  end
end
query?() click to toggle source

@return [true, false] True if this token is for query

# File lib/qiita/elasticsearch/token.rb, line 52
def query?
  !sort? && !ignorable?
end
quoted?() click to toggle source

@return [true, false] True if this token is for phrase matching @note `Express OR “Ruby on Rails”`

^^^^^^^^^^^^^^^
     This
# File lib/qiita/elasticsearch/token.rb, line 98
def quoted?
  !!@quoted
end
sort?() click to toggle source

@note Override me @return [true, false] True if this token is for sort order (e.g. “sort:created-asc”)

# File lib/qiita/elasticsearch/token.rb, line 104
def sort?
  field_name == "sort"
end
to_hash() click to toggle source

@note Override me

# File lib/qiita/elasticsearch/token.rb, line 109
def to_hash
  fail NotImplementedError
end
to_s() click to toggle source

@note Override @return [String]

# File lib/qiita/elasticsearch/token.rb, line 115
def to_s
  @token_string.to_s
end
type?() click to toggle source

@note Override me if needed @return [true, false]

# File lib/qiita/elasticsearch/token.rb, line 121
def type?
  false
end

Private Instance Methods

has_invalid_term?() click to toggle source

@note Override me if needed @return [true, false] True if its term is invalid value

# File lib/qiita/elasticsearch/token.rb, line 129
def has_invalid_term?
  false
end
ignorable?() click to toggle source

@return [true, false] True if this token has no meaning

# File lib/qiita/elasticsearch/token.rb, line 134
def ignorable?
  negative? && !field_name.nil? && has_invalid_term?
end