class DbTextSearch::FullText

Provides basic full-text search for a list of terms, and FTS index creation.

Constants

DEFAULT_PG_TS_CONFIG

The default Postgres text search config.

Public Class Methods

adapter_class(connection, _table_name, _column_name) click to toggle source

@param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter] @param _table_name [String, Symbol] @param _column_name [String, Symbol] @return [Class<AbstractAdapter>] @api private

# File lib/db_text_search/full_text.rb, line 47
def self.adapter_class(connection, _table_name, _column_name)
  DbTextSearch.match_adapter(
      connection,
      mysql:    -> { MysqlAdapter },
      postgres: -> { PostgresAdapter },
      sqlite:   -> { SqliteAdapter }
  )
end
add_index(connection, table_name, column_name, name: " click to toggle source

Add an index for full text search.

@param connection [ActiveRecord::ConnectionAdapters::AbstractAdapter] @param table_name [String, Symbol] @param column_name [String, Symbol] @param name [String, Symbol] index name @param pg_ts_config [String] for Postgres, the TS config to use; ignored for non-postgres.

# File lib/db_text_search/full_text.rb, line 36
def self.add_index(connection, table_name, column_name, name: "#{table_name}_#{column_name}_fts",
    pg_ts_config: DEFAULT_PG_TS_CONFIG)
  adapter_class(connection, table_name, column_name)
      .add_index(connection, table_name, column_name, name: name, pg_ts_config: pg_ts_config)
end
new(scope, column) click to toggle source

@param scope [ActiveRecord::Relation, Class<ActiveRecord::Base>] @param column [Symbol] name

# File lib/db_text_search/full_text.rb, line 15
def initialize(scope, column)
  @adapter = self.class.adapter_class(scope.connection, scope.table_name, column).new(scope, column)
  @scope   = scope
end

Public Instance Methods