Class: Qiita::Elasticsearch::Token

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(downcased: nil, field_name: nil, negative: nil, quoted: nil, filter: nil, term: nil, token_string: nil, options: nil) ⇒ Token

Returns a new instance of Token.

Parameters:

  • downcased (true, false) (defaults to: nil)

    True if given term must be downcased on query representation

  • field_name (String, nil) (defaults to: nil)

    Field name part

  • negative (true, false) (defaults to: nil)

    True if this term represents negative token (e.g. “-Perl”)

  • quoted (true, false) (defaults to: nil)

    Given term is quoted or not

  • filter (true, false) (defaults to: nil)

    True if this term should be used as filter

  • term (String) (defaults to: nil)

    Term part

  • token_string (String) (defaults to: nil)

    Original entire string

  • options (Hash) (defaults to: nil)

    Optional search parameters



27
28
29
30
31
32
33
34
35
36
# 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

Instance Attribute Details

#field_nameString? (readonly)

Note:

‘xxxxxxxxxxxx:yyyyyyyyyyy` ^^^^^^^^^^^^

field_name

Returns:

  • (String, nil)


8
9
10
# File 'lib/qiita/elasticsearch/token.rb', line 8

def field_name
  @field_name
end

#optionsHash

Returns:

  • (Hash)


17
18
19
# File 'lib/qiita/elasticsearch/token.rb', line 17

def options
  @options
end

#termString (readonly)

Note:

‘xxxxxxxxxxxx:yyyyyyyyyyy` ^^^^^^^^^^^

term

Returns:

  • (String)


14
15
16
# File 'lib/qiita/elasticsearch/token.rb', line 14

def term
  @term
end

Instance Method Details

#downcased?true, false

Returns True if its term must be treated with downcased.

Returns:

  • (true, false)

    True if its term must be treated with downcased



39
40
41
# File 'lib/qiita/elasticsearch/token.rb', line 39

def downcased?
  !!@downcased
end

#downcased_termObject



43
44
45
# File 'lib/qiita/elasticsearch/token.rb', line 43

def downcased_term
  @downcased_term ||= term.downcase
end

#filter?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/qiita/elasticsearch/token.rb', line 47

def filter?
  !!@filter || negative?
end

#must?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/qiita/elasticsearch/token.rb', line 56

def must?
  !field_name.nil? && positive?
end

#must_not?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/qiita/elasticsearch/token.rb', line 60

def must_not?
  negative?
end

#negative?true, false

Note:

‘Ruby -Perl` ^^^^^ This

Returns True if this token is for negative filter.

Returns:

  • (true, false)

    True if this token is for negative filter



68
69
70
# File 'lib/qiita/elasticsearch/token.rb', line 68

def negative?
  !!@negative
end

#or?true, false

Note:

‘Ruby OR Perl` ^^

This

Returns:

  • (true, false)

    True if this token is for OR filter



76
77
78
# File 'lib/qiita/elasticsearch/token.rb', line 76

def or?
  @token_string.downcase == "or"
end

#positive?true, false

Returns Opposite of #negative?.

Returns:

  • (true, false)

    Opposite of #negative?



81
82
83
# File 'lib/qiita/elasticsearch/token.rb', line 81

def positive?
  !negative?
end

#proper_cased_termString

Returns Downcased or not-downcased term.

Returns:

  • (String)

    Downcased or not-downcased term



86
87
88
89
90
91
92
# File 'lib/qiita/elasticsearch/token.rb', line 86

def proper_cased_term
  if downcased?
    downcased_term
  else
    term
  end
end

#query?true, false

Returns True if this token is for query.

Returns:

  • (true, false)

    True if this token is for query



52
53
54
# File 'lib/qiita/elasticsearch/token.rb', line 52

def query?
  !sort? && !ignorable?
end

#quoted?true, false

Note:

‘Express OR “Ruby on Rails”` ^^^^^^^^^^^^^^^

This

Returns True if this token is for phrase matching.

Returns:

  • (true, false)

    True if this token is for phrase matching



98
99
100
# File 'lib/qiita/elasticsearch/token.rb', line 98

def quoted?
  !!@quoted
end

#sort?true, false

Note:

Override me

Returns True if this token is for sort order (e.g. “sort:created-asc”).

Returns:

  • (true, false)

    True if this token is for sort order (e.g. “sort:created-asc”)



104
105
106
# File 'lib/qiita/elasticsearch/token.rb', line 104

def sort?
  field_name == "sort"
end

#to_hashObject

Note:

Override me



109
110
111
# File 'lib/qiita/elasticsearch/token.rb', line 109

def to_hash
  fail NotImplementedError
end

#to_sString

Note:

Override

Returns:

  • (String)


115
116
117
# File 'lib/qiita/elasticsearch/token.rb', line 115

def to_s
  @token_string.to_s
end

#type?true, false

Note:

Override me if needed

Returns:

  • (true, false)


121
122
123
# File 'lib/qiita/elasticsearch/token.rb', line 121

def type?
  false
end