class ChefAPI::Resource::PartialSearch

Public Class Methods

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

About search : docs.opscode.com/essentials_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