Class: RediSearch::Search

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
LazilyLoad, Clauses, Queries
Defined in:
lib/redi_search/search.rb,
lib/redi_search/search/term.rb,
lib/redi_search/search/result.rb,
lib/redi_search/search/clauses.rb,
lib/redi_search/search/queries.rb,
lib/redi_search/search/queries/or.rb,
lib/redi_search/search/queries/and.rb,
lib/redi_search/search/clauses/slop.rb,
lib/redi_search/search/clauses/limit.rb,
lib/redi_search/search/queries/where.rb,
lib/redi_search/search/clauses/return.rb,
lib/redi_search/search/clauses/sort_by.rb,
lib/redi_search/search/clauses/timeout.rb,
lib/redi_search/search/queries/boolean.rb,
lib/redi_search/search/clauses/in_order.rb,
lib/redi_search/search/clauses/language.rb,
lib/redi_search/search/clauses/verbatim.rb,
lib/redi_search/search/clauses/highlight.rb,
lib/redi_search/search/clauses/no_content.rb,
lib/redi_search/search/clauses/with_scores.rb,
lib/redi_search/search/clauses/no_stop_words.rb,
lib/redi_search/search/clauses/with_payloads.rb,
lib/redi_search/search/clauses/with_sort_keys.rb

Defined Under Namespace

Modules: Clauses, Queries Classes: Result, Term

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Queries

#and, #not, #or, #where

Methods included from Clauses

#count, #highlight, #in_order, #language, #limit, #no_content, #no_stop_words, #return, #slop, #sort_by, #timeout, #verbatim, #with_payloads, #with_scores, #with_sort_keys

Methods included from LazilyLoad

#inspect, #loaded?, #pretty_print, #to_a

Constructor Details

#initialize(index, term = nil, **term_options) ⇒ Search

Returns a new instance of Search.



14
15
16
17
18
19
20
# File 'lib/redi_search/search.rb', line 14

def initialize(index, term = nil, **term_options)
  @index = index
  @clauses = []
  @used_clauses = Set.new

  @query = term && And.new(self, term, nil, **term_options)
end

Instance Attribute Details

#clausesObject

Returns the value of attribute clauses.



10
11
12
# File 'lib/redi_search/search.rb', line 10

def clauses
  @clauses
end

#indexObject

Returns the value of attribute index.



10
11
12
# File 'lib/redi_search/search.rb', line 10

def index
  @index
end

#queryObject (readonly)

Returns the value of attribute query.



10
11
12
# File 'lib/redi_search/search.rb', line 10

def query
  @query
end

#used_clausesObject (readonly)

Returns the value of attribute used_clauses.



10
11
12
# File 'lib/redi_search/search.rb', line 10

def used_clauses
  @used_clauses
end

Instance Method Details

#dupObject



38
39
40
# File 'lib/redi_search/search.rb', line 38

def dup
  self.class.new(index)
end

#explainObject



32
33
34
35
36
# File 'lib/redi_search/search.rb', line 32

def explain
  RediSearch.client.call!(
    "EXPLAINCLI", index.name, query.to_s
  ).join(" ").strip
end

#resultsObject



22
23
24
25
26
27
28
29
30
# File 'lib/redi_search/search.rb', line 22

def results
  if model
    no_content unless loaded?

    model.where(id: to_a.map(&:document_id_without_index))
  else
    to_a
  end
end