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
memory: 1G
solr_jar: /some/path/solr15/start.jar
bind_address: 0.0.0.0
proxy: false
disabled: false
test:
solr:
hostname: localhost
port: 8983
log_level: OFF
open_timeout: 0.5
read_timeout: 2
proxy: false
production:
solr:
scheme: http
user: username
pass: password
hostname: localhost
port: 8983
path: /solr/myindex
log_level: WARNING
solr_home: /some/path
open_timeout: 0.5
read_timeout: 2
proxy: http://proxy.com:12345
master_solr:
hostname: localhost
port: 8982
path: /solr
auto_index_callback: after_commit
auto_remove_callback: after_commit
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.
Constant Summary collapse
- LOG_LEVELS =
ActiveSupport log levels are integers; this array maps them to the appropriate java.util.logging.Level constant
%w(FINE INFO WARNING SEVERE SEVERE INFO)
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.
-
#auto_index_callback ⇒ Object
The callback to use when automatically indexing records.
-
#auto_remove_callback ⇒ Object
The callback to use when automatically removing records after deletation.
-
#bind_address ⇒ Object
Interface on which to run Solr.
-
#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.
-
#memory ⇒ Object
java heap size for Solr instance.
- #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.
- #proxy ⇒ Object
- #read_timeout ⇒ Object
-
#scheme ⇒ Object
The scheme to use, http or https.
-
#solr_executable ⇒ Object
Solr start jar.
-
#solr_home ⇒ Object
The solr home directory.
- #update_format ⇒ Object
-
#userinfo ⇒ Object
The userinfo used for authentication, a colon-delimited string like “user:pass” Defaults to nil, which means no authentication.
Instance Attribute Details
#user_configuration=(value) ⇒ Object
Sets the attribute user_configuration
62 63 64 |
# File 'lib/sunspot/rails/configuration.rb', line 62 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?
235 236 237 238 |
# File 'lib/sunspot/rails/configuration.rb', line 235 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?
222 223 224 225 |
# File 'lib/sunspot/rails/configuration.rb', line 222 def auto_commit_after_request? @auto_commit_after_request ||= user_configuration_from_key('auto_commit_after_request') != false end |
#auto_index_callback ⇒ Object
The callback to use when automatically indexing records. Defaults to after_save.
324 325 326 327 |
# File 'lib/sunspot/rails/configuration.rb', line 324 def auto_index_callback @auto_index_callback ||= (user_configuration_from_key('auto_index_callback') || 'after_save') end |
#auto_remove_callback ⇒ Object
The callback to use when automatically removing records after deletation. Defaults to after_destroy.
333 334 335 336 |
# File 'lib/sunspot/rails/configuration.rb', line 333 def auto_remove_callback @auto_remove_callback ||= (user_configuration_from_key('auto_remove_callback') || 'after_destroy') end |
#bind_address ⇒ Object
Interface on which to run Solr
292 293 294 |
# File 'lib/sunspot/rails/configuration.rb', line 292 def bind_address @bind_address ||= user_configuration_from_key('solr', 'bind_address') end |
#disabled? ⇒ Boolean
Whether or not to disable Solr. Defaults to false.
316 317 318 |
# File 'lib/sunspot/rails/configuration.rb', line 316 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
193 194 195 |
# File 'lib/sunspot/rails/configuration.rb', line 193 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
70 71 72 73 74 75 76 77 |
# File 'lib/sunspot/rails/configuration.rb', line 70 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
248 249 250 |
# File 'lib/sunspot/rails/configuration.rb', line 248 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. If no level is specified in the sunspot configuration file, use a level similar to Rails own logging level.
Returns
- String
-
log_level
207 208 209 210 211 212 |
# File 'lib/sunspot/rails/configuration.rb', line 207 def log_level @log_level ||= ( user_configuration_from_key('solr', 'log_level') || LOG_LEVELS[::Rails.logger.level] ) 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
158 159 160 |
# File 'lib/sunspot/rails/configuration.rb', line 158 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
182 183 184 |
# File 'lib/sunspot/rails/configuration.rb', line 182 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
170 171 172 |
# File 'lib/sunspot/rails/configuration.rb', line 170 def master_port @master_port ||= (user_configuration_from_key('master_solr', 'port') || port).to_i end |
#memory ⇒ Object
java heap size for Solr instance
285 286 287 |
# File 'lib/sunspot/rails/configuration.rb', line 285 def memory @memory ||= user_configuration_from_key('solr', 'memory') end |
#open_timeout ⇒ Object
300 301 302 |
# File 'lib/sunspot/rails/configuration.rb', line 300 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/default’.
Returns
- String
-
path
141 142 143 144 145 146 147 148 |
# File 'lib/sunspot/rails/configuration.rb', line 141 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
252 253 254 |
# File 'lib/sunspot/rails/configuration.rb', line 252 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
87 88 89 90 91 92 93 94 95 |
# File 'lib/sunspot/rails/configuration.rb', line 87 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 |
#proxy ⇒ Object
308 309 310 |
# File 'lib/sunspot/rails/configuration.rb', line 308 def proxy @proxy ||= user_configuration_from_key('solr', 'proxy') end |
#read_timeout ⇒ Object
296 297 298 |
# File 'lib/sunspot/rails/configuration.rb', line 296 def read_timeout @read_timeout ||= user_configuration_from_key('solr', 'read_timeout') end |
#scheme ⇒ Object
The scheme to use, http or https. Defaults to http
Returns
- String
-
scheme
105 106 107 108 109 110 111 112 |
# File 'lib/sunspot/rails/configuration.rb', line 105 def scheme unless defined?(@scheme) @scheme = solr_url.scheme if solr_url @scheme ||= user_configuration_from_key('solr', 'scheme') @scheme ||= default_scheme end @scheme end |
#solr_executable ⇒ Object
Solr start jar
278 279 280 |
# File 'lib/sunspot/rails/configuration.rb', line 278 def solr_executable @solr_executable ||= user_configuration_from_key('solr', 'solr_executable') 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
266 267 268 269 270 271 272 273 |
# File 'lib/sunspot/rails/configuration.rb', line 266 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 |
#update_format ⇒ Object
304 305 306 |
# File 'lib/sunspot/rails/configuration.rb', line 304 def update_format @update_format ||= user_configuration_from_key('solr', 'update_format') end |
#userinfo ⇒ Object
The userinfo used for authentication, a colon-delimited string like “user:pass” Defaults to nil, which means no authentication
Returns
- String
-
userinfo
122 123 124 125 126 127 128 129 130 131 |
# File 'lib/sunspot/rails/configuration.rb', line 122 def userinfo unless defined?(@userinfo) @userinfo = solr_url.userinfo if solr_url user = user_configuration_from_key('solr', 'user') pass = user_configuration_from_key('solr', 'pass') @userinfo ||= [ user, pass ].compact.join(":") if user && pass @userinfo ||= default_userinfo end @userinfo end |