class DbTextSearch::FullText::SqliteAdapter
Provides very basic FTS support for SQLite.
Runs a `LIKE %term%` query for each term, joined with `AND`. Cannot use an index.
@note .add_index is a no-op. @api private
Public Class Methods
add_index(_connection, _table_name, _column_name, name:, pg_ts_config:)
click to toggle source
A no-op, as we just use LIKE for sqlite.
# File lib/db_text_search/full_text/sqlite_adapter.rb, line 23 def self.add_index(_connection, _table_name, _column_name, name:, pg_ts_config:); end
Public Instance Methods
search(terms, pg_ts_config:)
click to toggle source
(see AbstractAdapter#search
)
# File lib/db_text_search/full_text/sqlite_adapter.rb, line 15 def search(terms, pg_ts_config:) quoted_col = quoted_scope_column terms.map(&:downcase).uniq.inject(@scope) do |scope, term| scope.where("#{quoted_col} COLLATE NOCASE LIKE ?", "%#{sanitize_sql_like term}%") end end