class ChefAPI::Resource::PartialSearch

Public Class Methods

query(index, keys, query = "*:*", options = {}) click to toggle source

About search : docs.chef.io/chef_search.html

@param [String] index

the name of the index to search

@param [Hash] keys

key paths for the attributes to be returned

@param [String] query

the query string

@param [Hash] options

the query string

@return [self]

the current resource
# File lib/chef-api/resources/partial_search.rb, line 27
def query(index, keys, query = "*:*", options = {})
  return nil if index.nil?

  params = {}.tap do |o|
    o[:q]     = query
    o[:rows]  = options[:rows]  || 1000
    o[:sort]  = options[:sort]  || "X_CHEF_id_CHEF_X"
    o[:start] = options[:start] || 0
  end

  path = expanded_collection_path(index: index.to_s)
  response = connection.post(path, keys.to_json, params)
  response["rows"].map! { |row| row["data"] }
  from_json(response, index: index.to_s)
end