class RSolr::JSON::Generator
def add data, add_attrs = {}
def add data, add_attrs = {} add_attrs ||= {} data = RSolr::Array.wrap(data) if add_attrs.empty? && data.none? { |doc| doc.is_a?(RSolr::Document) && !doc.attrs.empty? } data.map do |doc| doc = RSolr::Document.new(doc) if doc.respond_to?(:each_pair) yield doc if block_given? doc.as_json end.to_json else i = 0 data.each_with_object({}) do |doc, hash| doc = RSolr::Document.new(doc) if doc.respond_to?(:each_pair) yield doc if block_given? hash["add__UNIQUE_RSOLR_SUFFIX_#{i += 1}"] = add_attrs.merge(doc.attrs).merge(doc: doc.as_json) end.to_json.gsub(/__UNIQUE_RSOLR_SUFFIX_\d+/, '') end end
def commit(opts = {})
def commit(opts = {}) opts ||= {} { commit: opts }.to_json end
def content_type
def content_type CONTENT_TYPE end
def delete_by_id(ids)
generates a delete message
def delete_by_id(ids) { delete: ids }.to_json end
def delete_by_query(queries)
generates a delete message
def delete_by_query(queries) { delete: { query: queries } }.to_json end
def optimize(opts = {})
def optimize(opts = {}) opts ||= {} { optimize: opts }.to_json end
def rollback
def rollback { rollback: {} }.to_json end