Class Sunspot::Rails::Configuration

  1. lib/sunspot/rails/configuration.rb
Parent: Object

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
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.

Attributes

user_configuration [W]

Public instance methods

auto_commit_after_delete_request? ()

As for auto_commit_after_request? but only for deletes Default false

Returns

Boolean: auto_commit_after_delete_request?

[show source]
# File lib/sunspot/rails/configuration.rb, line 157
      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? ()

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

Returns

Boolean: auto_commit_after_request?

[show source]
# File lib/sunspot/rails/configuration.rb, line 144
      def auto_commit_after_request?
        @auto_commit_after_request ||= 
          user_configuration_from_key('auto_commit_after_request') != false
      end
data_path ()
[show source]
# File lib/sunspot/rails/configuration.rb, line 174
      def data_path
        @data_path ||= user_configuration_from_key('solr', 'data_path') || File.join(::Rails.root, 'solr', 'data', ::Rails.env)
      end
has_master? ()

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

Returns

Boolean:bool
[show source]
# File lib/sunspot/rails/configuration.rb, line 119
      def has_master?
        @has_master = !!user_configuration_from_key('master_solr')
      end
hostname ()

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

Returns

String:host name
[show source]
# File lib/sunspot/rails/configuration.rb, line 49
      def hostname
        @hostname ||= (user_configuration_from_key('solr', 'hostname') || 'localhost')
      end
log_file ()

The log directory for solr logfiles

Returns

String:log_dir
[show source]
# File lib/sunspot/rails/configuration.rb, line 170
      def log_file
        @log_file ||= (user_configuration_from_key('solr', 'log_file') || default_log_file_location )
      end
log_level ()

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
[show source]
# File lib/sunspot/rails/configuration.rb, line 132
      def log_level
        @log_level ||= (user_configuration_from_key('solr', 'log_level') || 'INFO')
      end
master_hostname ()

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

Returns

String:host name
[show source]
# File lib/sunspot/rails/configuration.rb, line 84
      def master_hostname
        @master_hostname ||= (user_configuration_from_key('solr', 'master_hostname') || hostname)
      end
master_path ()

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
[show source]
# File lib/sunspot/rails/configuration.rb, line 108
      def master_path
        @master_path ||= (user_configuration_from_key('solr', 'master_path') || path)
      end
master_port ()

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

Returns

Integer:port
[show source]
# File lib/sunspot/rails/configuration.rb, line 96
      def master_port
        @master_port ||= (user_configuration_from_key('solr', 'master_port') || port).to_i
      end
max_memory ()

Maximum java heap size for Solr instance

[show source]
# File lib/sunspot/rails/configuration.rb, line 210
      def max_memory
        @max_memory ||= user_configuration_from_key('solr', 'max_memory')
      end
min_memory ()

Minimum java heap size for Solr instance

[show source]
# File lib/sunspot/rails/configuration.rb, line 203
      def min_memory
        @min_memory ||= user_configuration_from_key('solr', 'min_memory')
      end
path ()

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

Returns

String:path
[show source]
# File lib/sunspot/rails/configuration.rb, line 72
      def path
        @path ||= (user_configuration_from_key('solr', 'path') || '/solr')
      end
pid_path ()
[show source]
# File lib/sunspot/rails/configuration.rb, line 178
      def pid_path
        @pids_path ||= user_configuration_from_key('solr', 'pid_path') || File.join(::Rails.root, 'solr', 'pids', ::Rails.env)
      end
port ()

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

Returns

Integer:port
[show source]
# File lib/sunspot/rails/configuration.rb, line 60
      def port
        @port ||= (user_configuration_from_key('solr', 'port') || 8983).to_i
      end
solr_home ()

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
[show source]
# File lib/sunspot/rails/configuration.rb, line 191
      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