Class: MySQL::Search::Queries::FullTextSearchQuery
- Inherits:
-
Object
- Object
- MySQL::Search::Queries::FullTextSearchQuery
- Defined in:
- lib/mysql/search/queries/full_text_search_query.rb
Overview
FullTextSearchQuery is responsible for building and executing full-text search queries
Instance Attribute Summary collapse
-
#source_relation ⇒ Object
readonly
Returns the value of attribute source_relation.
Instance Method Summary collapse
- #call(search_term, search_column: :content) ⇒ Object
-
#initialize(source_relation) ⇒ FullTextSearchQuery
constructor
A new instance of FullTextSearchQuery.
Constructor Details
#initialize(source_relation) ⇒ FullTextSearchQuery
Returns a new instance of FullTextSearchQuery.
41 42 43 |
# File 'lib/mysql/search/queries/full_text_search_query.rb', line 41 def initialize(source_relation) @source_relation = source_relation end |
Instance Attribute Details
#source_relation ⇒ Object (readonly)
Returns the value of attribute source_relation.
39 40 41 |
# File 'lib/mysql/search/queries/full_text_search_query.rb', line 39 def source_relation @source_relation end |
Instance Method Details
#call(search_term, search_column: :content) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/mysql/search/queries/full_text_search_query.rb', line 45 def call(search_term, search_column: :content) relation_table = source_relation.klass.arel_table search_expression = search_expression(search_term, search_column) [relation_table[Arel.star], search_expression.as('search_term_relevancy')] source_relation # .select(*select_expression) .joins(:search_index) .where(search_expression) .order(search_expression.desc) end |