Module: ThinkingSphinx

Defined in:
lib/thinking_sphinx.rb,
lib/thinking_sphinx/field.rb,
lib/thinking_sphinx/index.rb,
lib/thinking_sphinx/search.rb,
lib/thinking_sphinx/attribute.rb,
lib/thinking_sphinx/association.rb,
lib/thinking_sphinx/active_record.rb,
lib/thinking_sphinx/configuration.rb,
lib/thinking_sphinx/index/builder.rb,
lib/thinking_sphinx/rails_additions.rb,
lib/thinking_sphinx/rails_additions.rb,
lib/thinking_sphinx/rails_additions.rb,
lib/thinking_sphinx/rails_additions.rb,
lib/thinking_sphinx/index/faux_column.rb,
lib/thinking_sphinx/active_record/delta.rb,
lib/thinking_sphinx/active_record/search.rb,
lib/thinking_sphinx/active_record/has_many_association.rb

Defined Under Namespace

Modules: ActiveRecord, ActiveRecordQuotedName, ArrayExtractOptions, HashExcept, MysqlQuotedTableName, Version Classes: Association, Attribute, Configuration, ConnectionError, Field, Index, Search

Constant Summary collapse

@@deltas_enabled =
nil
@@updates_enabled =
nil

Class Method Summary collapse

Class Method Details

.define_indexes=(value) ⇒ Object

Enable/disable indexes - you may want to do this while migrating data.

ThinkingSphinx.define_indexes = false


51
52
53
# File 'lib/thinking_sphinx.rb', line 51

def self.define_indexes=(value)
  @@define_indexes = value
end

.define_indexes?Boolean

Check if index definition is disabled.

Returns:

  • (Boolean)


42
43
44
45
# File 'lib/thinking_sphinx.rb', line 42

def self.define_indexes?
  @@define_indexes =  true unless defined?(@@define_indexes)
  @@define_indexes == true
end

.deltas_enabled=(value) ⇒ Object

Enable/disable all delta indexing.

ThinkingSphinx.deltas_enabled = false


68
69
70
# File 'lib/thinking_sphinx.rb', line 68

def self.deltas_enabled=(value)
  @@deltas_enabled = value
end

.deltas_enabled?Boolean

Check if delta indexing is enabled.

Returns:

  • (Boolean)


59
60
61
62
# File 'lib/thinking_sphinx.rb', line 59

def self.deltas_enabled?
  @@deltas_enabled  = (ThinkingSphinx::Configuration.environment != 'test') if @@deltas_enabled.nil?
  @@deltas_enabled
end

.indexed_modelsObject

The collection of indexed models. Keep in mind that Rails lazily loads its classes, so this may not actually be populated with all the models that have Sphinx indexes.



36
37
38
# File 'lib/thinking_sphinx.rb', line 36

def self.indexed_models
  @@indexed_models ||= []
end

.updates_enabled=(value) ⇒ Object

Enable/disable updates to Sphinx

ThinkingSphinx.updates_enabled = false


86
87
88
# File 'lib/thinking_sphinx.rb', line 86

def self.updates_enabled=(value)
  @@updates_enabled = value
end

.updates_enabled?Boolean

Check if updates are enabled. True by default, unless within the test environment.

Returns:

  • (Boolean)


77
78
79
80
# File 'lib/thinking_sphinx.rb', line 77

def self.updates_enabled?
  @@updates_enabled  = (ThinkingSphinx::Configuration.environment != 'test') if @@updates_enabled.nil?
  @@updates_enabled
end

.use_group_by_shortcut?Boolean

Checks to see if MySQL will allow simplistic GROUP BY statements. If not, or if not using MySQL, this will return false.

Returns:

  • (Boolean)


93
94
95
96
97
98
99
100
101
# File 'lib/thinking_sphinx.rb', line 93

def self.use_group_by_shortcut?
  ::ActiveRecord::ConnectionAdapters.constants.include?("MysqlAdapter") &&
  ::ActiveRecord::Base.connection.is_a?(
    ::ActiveRecord::ConnectionAdapters::MysqlAdapter
  ) &&
  ::ActiveRecord::Base.connection.select_all(
    "SELECT @@global.sql_mode, @@session.sql_mode;"
  ).all? { |key,value| value.nil? || value[/ONLY_FULL_GROUP_BY/].nil? }
end