Class: Fluent::GroongaOutput::TableDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/fluent/plugin/out_groonga.rb

Defined Under Namespace

Classes: IndexDefinition

Instance Method Summary collapse

Constructor Details

#initialize(raw) ⇒ TableDefinition

Returns a new instance of TableDefinition.



126
127
128
# File 'lib/fluent/plugin/out_groonga.rb', line 126

def initialize(raw)
  @raw = raw
end

Instance Method Details

#default_tokenizerObject



142
143
144
# File 'lib/fluent/plugin/out_groonga.rb', line 142

def default_tokenizer
  @raw[:default_tokenizer]
end

#flagsObject



134
135
136
# File 'lib/fluent/plugin/out_groonga.rb', line 134

def flags
  parse_flags(@raw[:flags] || "TABLE_NO_KEY")
end

#have_difference?(table) ⇒ Boolean

Returns:

  • (Boolean)


164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/fluent/plugin/out_groonga.rb', line 164

def have_difference?(table)
  return true if table.name != name

  table_flags = (parse_flags(table.flags) - ["PERSISTENT"])
  return true if table_flags.sort != flags.sort

  return true if table.domain != key_type

  return true if table.default_tokenizer != default_tokenizer

  # TODO
  # return true if table.token_filters.sort != token_filters.sort

  return true if table.normalizer != normalizer

  false
end

#indexesObject



154
155
156
157
158
# File 'lib/fluent/plugin/out_groonga.rb', line 154

def indexes
  (@raw[:indexes] || []).collect do |raw|
    IndexDefinition.new(self, raw)
  end
end

#key_typeObject



138
139
140
# File 'lib/fluent/plugin/out_groonga.rb', line 138

def key_type
  @raw[:key_type]
end

#nameObject



130
131
132
# File 'lib/fluent/plugin/out_groonga.rb', line 130

def name
  @raw[:name]
end

#normalizerObject



150
151
152
# File 'lib/fluent/plugin/out_groonga.rb', line 150

def normalizer
  @raw[:normalizer]
end

#to_create_argumentsObject



182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/fluent/plugin/out_groonga.rb', line 182

def to_create_arguments
  arguments = {
    "name" => name,
    "flags" => flags.join("|"),
    "key_type" => key_type,
    "default_tokenizer" => default_tokenizer,
    # TODO
    # "token_filters" => token_filters.join("|"),
    "normalizer" => normalizer,
  }
  arguments.keys.each do |key|
    value = arguments[key]
    arguments.delete(key) if value.nil? or value.empty?
  end
  arguments
end

#token_filtersObject



146
147
148
# File 'lib/fluent/plugin/out_groonga.rb', line 146

def token_filters
  parse_items(@raw[:token_filters] || "")
end

#use_n_gram_tokenizer?Boolean

Returns:

  • (Boolean)


160
161
162
# File 'lib/fluent/plugin/out_groonga.rb', line 160

def use_n_gram_tokenizer?
  /\AToken(?:Uni|Bi|Tri)gram/ === default_tokenizer.to_s
end