Class: TypesenseModel::Search

Inherits:
Object
  • Object
show all
Defined in:
lib/typesense_model/search.rb

Instance Method Summary collapse

Constructor Details

#initialize(model_class, query, options = {}) ⇒ Search

Returns a new instance of Search.



5
6
7
8
9
# File 'lib/typesense_model/search.rb', line 5

def initialize(model_class, query, options = {})
  @model_class = model_class
  @query = query
  @options = options
end

Instance Method Details

#executeObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/typesense_model/search.rb', line 11

def execute
  search_parameters = {
    q: @query,
    query_by: @options[:query_by] || default_queryable_fields,
    per_page: @options[:per_page] || 10,
    page: @options[:page] || 1
  }.merge(@options.except(:query_by, :per_page, :page))

  response = @model_class.send(:client)
    .collections[@model_class.collection_name]
    .documents
    .search(search_parameters)

  SearchResults.new(response, @model_class)
end