module Elasticsearch::API::Graph::Actions

Public Instance Methods

explore(arguments = {}) click to toggle source

Explore extracted and summarized information about the documents and terms in an index.

@option arguments [List] :index A comma-separated list of index names to search; use ‘_all` or empty string to perform the operation on all indices @option arguments [String] :routing Specific routing value @option arguments [Time] :timeout Explicit operation timeout @option arguments [Hash] :headers Custom HTTP headers @option arguments [Hash] :body Graph Query DSL

@see www.elastic.co/guide/en/elasticsearch/reference/8.16/graph-explore-api.html

# File lib/elasticsearch/api/actions/graph/explore.rb, line 35
def explore(arguments = {})
  request_opts = { endpoint: arguments[:endpoint] || 'graph.explore' }

  defined_params = [:index].each_with_object({}) do |variable, set_variables|
    set_variables[variable] = arguments[variable] if arguments.key?(variable)
  end
  request_opts[:defined_params] = defined_params unless defined_params.empty?

  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]

  arguments = arguments.clone
  headers = arguments.delete(:headers) || {}

  body = arguments.delete(:body)

  _index = arguments.delete(:index)

  method = if body
             Elasticsearch::API::HTTP_POST
           else
             Elasticsearch::API::HTTP_GET
           end

  path = "#{Utils.__listify(_index)}/_graph/explore"
  params = Utils.process_params(arguments)

  Elasticsearch::API::Response.new(
    perform_request(method, path, params, body, headers, request_opts)
  )
end