Class: Solr::DataImport::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/solr/data_import/request.rb

Constant Summary collapse

PATH =
'/dataimport'.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Request

Returns a new instance of Request.



10
11
12
# File 'lib/solr/data_import/request.rb', line 10

def initialize(params)
  @params = params
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



8
9
10
# File 'lib/solr/data_import/request.rb', line 8

def params
  @params
end

Instance Method Details

#build_node_selection_strategyObject



22
23
24
# File 'lib/solr/data_import/request.rb', line 22

def build_node_selection_strategy
  Solr::Request::FirstShardLeaderNodeSelectionStrategy
end

#runObject

We want to make sure we send every dataimport request to the same node because this same class could be used to start a dataimport and to get dataimport progress data afterwards. To make it consistent we will send dataimport requests only to the first shard leader replica



17
18
19
20
# File 'lib/solr/data_import/request.rb', line 17

def run
  http_request = Solr::Request::HttpRequest.new(path: PATH, url_params: params, method: :get)
  Solr::Request::Runner.call(request: http_request, node_selection_strategy: build_node_selection_strategy)
end