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.



44
45
46
# File 'lib/sunspot/rails/configuration.rb', line 44

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)


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

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)


164
165
166
167
# File 'lib/sunspot/rails/configuration.rb', line 164

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

#data_pathObject



194
195
196
# File 'lib/sunspot/rails/configuration.rb', line 194

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)


139
140
141
# File 'lib/sunspot/rails/configuration.rb', line 139

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



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

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



190
191
192
# File 'lib/sunspot/rails/configuration.rb', line 190

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



152
153
154
# File 'lib/sunspot/rails/configuration.rb', line 152

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



104
105
106
# File 'lib/sunspot/rails/configuration.rb', line 104

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



128
129
130
# File 'lib/sunspot/rails/configuration.rb', line 128

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



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

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



237
238
239
# File 'lib/sunspot/rails/configuration.rb', line 237

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

#min_memoryObject

Minimum java heap size for Solr instance



230
231
232
# File 'lib/sunspot/rails/configuration.rb', line 230

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



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

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



198
199
200
# File 'lib/sunspot/rails/configuration.rb', line 198

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



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

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



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

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



223
224
225
# File 'lib/sunspot/rails/configuration.rb', line 223

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