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.



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_relationObject (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