Class: MySQL::Search::Queries::FullTextSearchQuery

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Constructor Details

#initialize(source_relation) ⇒ FullTextSearchQuery

Returns a new instance of FullTextSearchQuery.



12
13
14
# File 'lib/mysql/search/queries/full_text_search_query.rb', line 12

def initialize(source_relation)
  @source_relation = source_relation
end

Instance Attribute Details

#source_relationObject (readonly)

Returns the value of attribute source_relation.



10
11
12
# File 'lib/mysql/search/queries/full_text_search_query.rb', line 10

def source_relation
  @source_relation
end

Instance Method Details

#call(search_term, search_column: :content) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/mysql/search/queries/full_text_search_query.rb', line 16

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