Class: Sunspot::Rails::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/sunspot/rails/configuration.rb

Overview

Sunspot::Rails is configured via the config/sunspot.yml file, which contains properties keyed by environment name. A sample sunspot.yml file would look like:

development:
  solr:
    hostname: localhost
    port: 8982
    min_memory: 512M
    max_memory: 1G
    solr_jar: /some/path/solr15/start.jar
    bind_address: 0.0.0.0
  disabled: false
test:
  solr:
    hostname: localhost
    port: 8983
    log_level: OFF
    open_timeout: 0.5
    read_timeout: 2
production:
  solr:
    hostname: localhost
    port: 8983
    path: /solr/myindex
    log_level: WARNING
    solr_home: /some/path
    open_timeout: 0.5
    read_timeout: 2
  master_solr:
    hostname: localhost
    port: 8982
    path: /solr
  auto_commit_after_request: true

Sunspot::Rails uses the configuration to set up the Solr connection, as well as for starting Solr with the appropriate port using the rake sunspot:solr:start task.

If the master_solr configuration is present, Sunspot will use the Solr instance specified here for all write operations, and the Solr configured under solr for all read operations.

Direct Known Subclasses

ExtendedConfiguration

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#user_configuration=(value) ⇒ Object

Sets the attribute user_configuration

Parameters:

  • value

    the value to set the attribute user_configuration to.



50
51
52
# File 'lib/sunspot/rails/configuration.rb', line 50

def user_configuration=(value)
  @user_configuration = value
end

Instance Method Details

#auto_commit_after_delete_request?Boolean

As for #auto_commit_after_request? but only for deletes Default false

Returns

Boolean: auto_commit_after_delete_request?

Returns:

  • (Boolean)


183
184
185
186
# File 'lib/sunspot/rails/configuration.rb', line 183

def auto_commit_after_delete_request?
  @auto_commit_after_delete_request ||= 
    (user_configuration_from_key('auto_commit_after_delete_request') || false)
end

#auto_commit_after_request?Boolean

Should the solr index receive a commit after each http-request. Default true

Returns

Boolean: auto_commit_after_request?

Returns:

  • (Boolean)


170
171
172
173
# File 'lib/sunspot/rails/configuration.rb', line 170

def auto_commit_after_request?
  @auto_commit_after_request ||= 
    user_configuration_from_key('auto_commit_after_request') != false
end

#bind_addressObject

Interface on which to run Solr



251
252
253
# File 'lib/sunspot/rails/configuration.rb', line 251

def bind_address
  @bind_address ||= user_configuration_from_key('solr', 'bind_address')
end

#data_pathObject



200
201
202
# File 'lib/sunspot/rails/configuration.rb', line 200

def data_path
  @data_path ||= user_configuration_from_key('solr', 'data_path') || File.join(::Rails.root, 'solr', 'data', ::Rails.env)
end

#disabled?Boolean

Whether or not to disable Solr. Defaults to false.

Returns:

  • (Boolean)


271
272
273
# File 'lib/sunspot/rails/configuration.rb', line 271

def disabled?
  @disabled ||= (user_configuration_from_key('disabled') || false)
end

#has_master?Boolean

True if there is a master Solr instance configured, otherwise false.

Returns

Boolean

bool

Returns:

  • (Boolean)


145
146
147
# File 'lib/sunspot/rails/configuration.rb', line 145

def has_master?
  @has_master = !!user_configuration_from_key('master_solr')
end

#hostnameObject

The host name at which to connect to Solr. Default ‘localhost’.

Returns

String

host name



58
59
60
61
62
63
64
65
# File 'lib/sunspot/rails/configuration.rb', line 58

def hostname
  unless defined?(@hostname)
    @hostname   = solr_url.host if solr_url
    @hostname ||= user_configuration_from_key('solr', 'hostname')
    @hostname ||= default_hostname
  end
  @hostname
end

#log_fileObject

The log directory for solr logfiles

Returns

String

log_dir



196
197
198
# File 'lib/sunspot/rails/configuration.rb', line 196

def log_file
  @log_file ||= (user_configuration_from_key('solr', 'log_file') || default_log_file_location )
end

#log_levelObject

The default log_level that should be passed to solr. You can change the individual log_levels in the solr admin interface. Default ‘INFO’.

Returns

String

log_level



158
159
160
# File 'lib/sunspot/rails/configuration.rb', line 158

def log_level
  @log_level ||= (user_configuration_from_key('solr', 'log_level') || 'INFO')
end

#master_hostnameObject

The host name at which to connect to the master Solr instance. Defaults to the ‘hostname’ configuration option.

Returns

String

host name



110
111
112
# File 'lib/sunspot/rails/configuration.rb', line 110

def master_hostname
  @master_hostname ||= (user_configuration_from_key('master_solr', 'hostname') || hostname)
end

#master_pathObject

The path to the master Solr servlet (useful if you are running multicore). Defaults to the value of the ‘path’ configuration option.

Returns

String

path



134
135
136
# File 'lib/sunspot/rails/configuration.rb', line 134

def master_path
  @master_path ||= (user_configuration_from_key('master_solr', 'path') || path)
end

#master_portObject

The port at which to connect to the master Solr instance. Defaults to the ‘port’ configuration option.

Returns

Integer

port



122
123
124
# File 'lib/sunspot/rails/configuration.rb', line 122

def master_port
  @master_port ||= (user_configuration_from_key('master_solr', 'port') || port).to_i
end

#max_memoryObject

Maximum java heap size for Solr instance



244
245
246
# File 'lib/sunspot/rails/configuration.rb', line 244

def max_memory
  @max_memory ||= user_configuration_from_key('solr', 'max_memory')
end

#min_memoryObject

Minimum java heap size for Solr instance



237
238
239
# File 'lib/sunspot/rails/configuration.rb', line 237

def min_memory
  @min_memory ||= user_configuration_from_key('solr', 'min_memory')
end

#multicoreObject



255
256
257
# File 'lib/sunspot/rails/configuration.rb', line 255

def multicore
  @multicore ||= !!user_configuration_from_key('solr', 'multicore')
end

#open_timeoutObject



263
264
265
# File 'lib/sunspot/rails/configuration.rb', line 263

def open_timeout
  @open_timeout ||= user_configuration_from_key('solr', 'open_timeout')
end

#pathObject

The url path to the Solr servlet (useful if you are running multicore). Default ‘/solr’.

Returns

String

path



93
94
95
96
97
98
99
100
# File 'lib/sunspot/rails/configuration.rb', line 93

def path
  unless defined?(@path)
    @path   = solr_url.path if solr_url
    @path ||= user_configuration_from_key('solr', 'path')
    @path ||= default_path
  end
  @path
end

#pid_dirObject



204
205
206
# File 'lib/sunspot/rails/configuration.rb', line 204

def pid_dir
  @pid_dir ||= user_configuration_from_key('solr', 'pid_dir') || File.join(::Rails.root, 'solr', 'pids', ::Rails.env)
end

#portObject

The port at which to connect to Solr. Defaults to 8981 in test, 8982 in development and 8983 in production.

Returns

Integer

port



75
76
77
78
79
80
81
82
83
# File 'lib/sunspot/rails/configuration.rb', line 75

def port
  unless defined?(@port)
    @port   = solr_url.port if solr_url
    @port ||= user_configuration_from_key('solr', 'port')
    @port ||= default_port
    @port   = @port.to_i
  end
  @port
end

#read_timeoutObject



259
260
261
# File 'lib/sunspot/rails/configuration.rb', line 259

def read_timeout
  @read_timeout ||= user_configuration_from_key('solr', 'read_timeout')
end

#solr_homeObject

The solr home directory. Sunspot::Rails expects this directory to contain a config, data and pids directory. See Sunspot::Rails::Server.bootstrap for more information.

Returns

String

solr_home



218
219
220
221
222
223
224
225
# File 'lib/sunspot/rails/configuration.rb', line 218

def solr_home
  @solr_home ||=
    if user_configuration_from_key('solr', 'solr_home')
      user_configuration_from_key('solr', 'solr_home')
    else
      File.join(::Rails.root, 'solr')
    end
end

#solr_jarObject

Solr start jar



230
231
232
# File 'lib/sunspot/rails/configuration.rb', line 230

def solr_jar
  @solr_jar ||= user_configuration_from_key('solr', 'solr_jar')
end