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/collection.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/adapters/mysql_adapter.rb,
lib/thinking_sphinx/adapters/abstract_adapter.rb,
lib/thinking_sphinx/adapters/postgresql_adapter.rb,
lib/thinking_sphinx/active_record/has_many_association.rb,
lib/thinking_sphinx/rails_additions.rb

Defined Under Namespace

Modules: ActiveRecord, ActiveRecordQuotedName, ActiveRecordStoreFullSTIClass, ArrayExtractOptions, HashExcept, MysqlQuotedTableName, Version Classes: AbstractAdapter, Association, Attribute, Collection, Configuration, ConnectionError, Field, Index, MysqlAdapter, PostgreSQLAdapter, 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


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

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

.define_indexes?Boolean

Check if index definition is disabled.

Returns:

  • (Boolean)


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

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


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

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

.deltas_enabled?Boolean

Check if delta indexing is enabled.

Returns:

  • (Boolean)


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

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.



46
47
48
# File 'lib/thinking_sphinx.rb', line 46

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

.updates_enabled=(value) ⇒ Object

Enable/disable updates to Sphinx

ThinkingSphinx.updates_enabled = false


96
97
98
# File 'lib/thinking_sphinx.rb', line 96

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)


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

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)


103
104
105
106
107
108
109
110
111
# File 'lib/thinking_sphinx.rb', line 103

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