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
test:
  solr:
    hostname: localhost
    port: 8983
    log_level: OFF
production:
  solr:
    hostname: localhost
    port: 8983
    path: /solr/myindex
    log_level: WARNING
    solr_home: /some/path
  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.

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.



39
40
41
# File 'lib/sunspot/rails/configuration.rb', line 39

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)


155
156
157
158
# File 'lib/sunspot/rails/configuration.rb', line 155

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)


142
143
144
145
# File 'lib/sunspot/rails/configuration.rb', line 142

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

#data_pathObject



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

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

#has_master?Boolean

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

Returns

Boolean

bool

Returns:

  • (Boolean)


117
118
119
# File 'lib/sunspot/rails/configuration.rb', line 117

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



47
48
49
# File 'lib/sunspot/rails/configuration.rb', line 47

def hostname
  @hostname ||= (user_configuration_from_key('solr', 'hostname') || 'localhost')
end

#log_fileObject

The log directory for solr logfiles

Returns

String

log_dir



168
169
170
# File 'lib/sunspot/rails/configuration.rb', line 168

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



130
131
132
# File 'lib/sunspot/rails/configuration.rb', line 130

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



82
83
84
# File 'lib/sunspot/rails/configuration.rb', line 82

def master_hostname
  @master_hostname ||= (user_configuration_from_key('solr', 'master_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



106
107
108
# File 'lib/sunspot/rails/configuration.rb', line 106

def master_path
  @master_path ||= (user_configuration_from_key('solr', 'master_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



94
95
96
# File 'lib/sunspot/rails/configuration.rb', line 94

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

#pathObject

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

Returns

String

path



70
71
72
# File 'lib/sunspot/rails/configuration.rb', line 70

def path
  @path ||= (user_configuration_from_key('solr', 'path') || '/solr')
end

#pid_pathObject



176
177
178
# File 'lib/sunspot/rails/configuration.rb', line 176

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

#portObject

The port at which to connect to Solr. Default 8983.

Returns

Integer

port



58
59
60
# File 'lib/sunspot/rails/configuration.rb', line 58

def port
  @port ||= (user_configuration_from_key('solr', 'port') || 8983).to_i
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



189
190
191
192
193
194
195
196
# File 'lib/sunspot/rails/configuration.rb', line 189

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