Class: Sunspot::Rails::Configuration
- Inherits:
-
Object
- Object
- Sunspot::Rails::Configuration
- 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
Instance Attribute Summary collapse
-
#user_configuration ⇒ Object
writeonly
Sets the attribute user_configuration.
Instance Method Summary collapse
-
#auto_commit_after_delete_request? ⇒ Boolean
As for #auto_commit_after_request? but only for deletes Default false.
-
#auto_commit_after_request? ⇒ Boolean
Should the solr index receive a commit after each http-request.
-
#bind_address ⇒ Object
Interface on which to run Solr.
- #data_path ⇒ Object
-
#disabled? ⇒ Boolean
Whether or not to disable Solr.
-
#has_master? ⇒ Boolean
True if there is a master Solr instance configured, otherwise false.
-
#hostname ⇒ Object
The host name at which to connect to Solr.
-
#log_file ⇒ Object
The log directory for solr logfiles.
-
#log_level ⇒ Object
The default log_level that should be passed to solr.
-
#master_hostname ⇒ Object
The host name at which to connect to the master Solr instance.
-
#master_path ⇒ Object
The path to the master Solr servlet (useful if you are running multicore).
-
#master_port ⇒ Object
The port at which to connect to the master Solr instance.
-
#max_memory ⇒ Object
Maximum java heap size for Solr instance.
-
#min_memory ⇒ Object
Minimum java heap size for Solr instance.
- #multicore ⇒ Object
- #open_timeout ⇒ Object
-
#path ⇒ Object
The url path to the Solr servlet (useful if you are running multicore).
- #pid_dir ⇒ Object
-
#port ⇒ Object
The port at which to connect to Solr.
- #read_timeout ⇒ Object
-
#solr_home ⇒ Object
The solr home directory.
-
#solr_jar ⇒ Object
Solr start jar.
Instance Attribute Details
#user_configuration=(value) ⇒ Object
Sets the attribute user_configuration
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?
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?
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_address ⇒ Object
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_path ⇒ Object
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.
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
145 146 147 |
# File 'lib/sunspot/rails/configuration.rb', line 145 def has_master? @has_master = !!user_configuration_from_key('master_solr') end |
#hostname ⇒ Object
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_file ⇒ Object
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_level ⇒ Object
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_hostname ⇒ Object
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_path ⇒ Object
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_port ⇒ Object
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_memory ⇒ Object
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_memory ⇒ Object
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 |
#multicore ⇒ Object
255 256 257 |
# File 'lib/sunspot/rails/configuration.rb', line 255 def multicore @multicore ||= !!user_configuration_from_key('solr', 'multicore') end |
#open_timeout ⇒ Object
263 264 265 |
# File 'lib/sunspot/rails/configuration.rb', line 263 def open_timeout @open_timeout ||= user_configuration_from_key('solr', 'open_timeout') end |
#path ⇒ Object
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_dir ⇒ Object
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 |
#port ⇒ Object
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_timeout ⇒ Object
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_home ⇒ Object
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_jar ⇒ Object
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 |