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



42
43
44
# File 'lib/sunspot/rails/configuration.rb', line 42

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)


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

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)


162
163
164
165
# File 'lib/sunspot/rails/configuration.rb', line 162

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

#data_pathObject



192
193
194
# File 'lib/sunspot/rails/configuration.rb', line 192

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)


137
138
139
# File 'lib/sunspot/rails/configuration.rb', line 137

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



50
51
52
53
54
55
56
57
# File 'lib/sunspot/rails/configuration.rb', line 50

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



188
189
190
# File 'lib/sunspot/rails/configuration.rb', line 188

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



150
151
152
# File 'lib/sunspot/rails/configuration.rb', line 150

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



102
103
104
# File 'lib/sunspot/rails/configuration.rb', line 102

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



126
127
128
# File 'lib/sunspot/rails/configuration.rb', line 126

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



114
115
116
# File 'lib/sunspot/rails/configuration.rb', line 114

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



235
236
237
# File 'lib/sunspot/rails/configuration.rb', line 235

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

#min_memoryObject

Minimum java heap size for Solr instance



228
229
230
# File 'lib/sunspot/rails/configuration.rb', line 228

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

#pathObject

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

Returns

String

path



85
86
87
88
89
90
91
92
# File 'lib/sunspot/rails/configuration.rb', line 85

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_pathObject



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

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. Defaults to 8981 in test, 8982 in development and 8983 in production.

Returns

Integer

port



67
68
69
70
71
72
73
74
75
# File 'lib/sunspot/rails/configuration.rb', line 67

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

#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



209
210
211
212
213
214
215
216
# File 'lib/sunspot/rails/configuration.rb', line 209

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



221
222
223
# File 'lib/sunspot/rails/configuration.rb', line 221

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