class Qiita::Elasticsearch::Token
Attributes
@return [String, nil] @note `xxxxxxxxxxxx:yyyyyyyyyyy`
^^^^^^^^^^^^ field_name
@return [Hash]
@return [String] @note `xxxxxxxxxxxx:yyyyyyyyyyy`
^^^^^^^^^^^ term
Public Class Methods
@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
@return [true, false] True if its term must be treated with downcased
# File lib/qiita/elasticsearch/token.rb, line 39 def downcased? !!@downcased end
# File lib/qiita/elasticsearch/token.rb, line 43 def downcased_term @downcased_term ||= term.downcase end
# File lib/qiita/elasticsearch/token.rb, line 47 def filter? !!@filter || negative? end
# File lib/qiita/elasticsearch/token.rb, line 56 def must? !field_name.nil? && positive? end
# File lib/qiita/elasticsearch/token.rb, line 60 def must_not? negative? end
@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
@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
@return [true, false] Opposite of negative?
# File lib/qiita/elasticsearch/token.rb, line 81 def positive? !negative? end
@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
@return [true, false] True if this token is for query
# File lib/qiita/elasticsearch/token.rb, line 52 def query? !sort? && !ignorable? end
@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
@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
@note Override me
# File lib/qiita/elasticsearch/token.rb, line 109 def to_hash fail NotImplementedError end
@note Override @return [String]
# File lib/qiita/elasticsearch/token.rb, line 115 def to_s @token_string.to_s end
@note Override me if needed @return [true, false]
# File lib/qiita/elasticsearch/token.rb, line 121 def type? false end
Private Instance Methods
@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
@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