class Groonga::Command::Format::Elasticsearch

Public Class Methods

new(command) click to toggle source
# File lib/groonga/command/format/elasticsearch.rb, line 21
def initialize(command)
  @command = command
end

Public Instance Methods

json(options={}) click to toggle source
# File lib/groonga/command/format/elasticsearch.rb, line 25
def json(options={})
  return nil unless @command.is_a?(Load)

  components = []
  action = build_action(options)
  each_source do |source|
    components << JSON.generate(action)
    components << JSON.generate(source)
  end
  components.join("\n")
end

Private Instance Methods

build_action(options) click to toggle source
# File lib/groonga/command/format/elasticsearch.rb, line 42
def build_action(options)
  index_name = @command.table.downcase
  case elasticsearch_version(options)
  when 5, 6
    {
      "index" => {
        "_index" => index_name,
        "_type" => "groonga",
      }
    }
  when 7
    {
      "index" => {
        "_index" => index_name,
        "_type"=>"_doc",
      }
    }
  else
    {
      "index" => {
        "_index" => index_name,
      }
    }
  end
end
each_source() { |Hash| ... } click to toggle source
# File lib/groonga/command/format/elasticsearch.rb, line 68
def each_source
  columns = @command.columns
  values = @command.values || []
  values.each do |value|
    if value.is_a?(::Array)
      if columns.nil?
        columns = value
      else
        yield(Hash[columns.zip(value)])
      end
    else
      yield(value)
    end
  end
end
elasticsearch_version(options) click to toggle source
# File lib/groonga/command/format/elasticsearch.rb, line 38
def elasticsearch_version(options)
  options[:version] || 5
end