Class: Sonicsearch::Search

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

Instance Method Summary collapse

Instance Method Details

#connectionObject



7
8
9
# File 'lib/sonicsearch/search.rb', line 7

def connection
  ChannelFactory.new.search_channel
end

#query(collection_id, bucket_id, terms_text, limit, offset) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/sonicsearch/search.rb', line 11

def query(collection_id, bucket_id, terms_text, limit, offset)
  cmd = "QUERY #{collection_id} #{bucket_id} #{terms_text}"
  cmd += " LIMIT(#{limit})" unless limit.nil?
  cmd += " OFFSET(#{limit})" unless offset.nil?
  connection.connect do |peer|
    peer.write(cmd)
    message = peer.read(512) # PENDING CjPvE5t9
    puts "Sent #{data}, got response: #{message}"
  end
  search_done = false
  while search_done
    Async do |_task|
      endpoint.connect do |peer|
        message = peer.read(512) # received EVENT QUERY CjPvE5t9
        puts "Sent #{data}, got response: #{message}"
        search_done = true
      end
    end
  end
end

#suggest(collection_id, bucket_id, word_text, limit, offset) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/sonicsearch/search.rb', line 32

def suggest(collection_id, bucket_id, word_text, limit, offset)
  cmd = "SUGGEST #{collection_id} #{bucket_id} #{word_text}"
  cmd += " LIMIT(#{limit})" unless limit.nil?
  cmd += " OFFSET(#{limit})" unless offset.nil?
  connection.connect do |peer|
    peer.write(cmd)
    message = peer.read(512) # PENDING CjPvE5t9
    puts "Sent #{data}, got response: #{message}"
  end
  search_done = false
  while search_done
    Async do |_task|
      endpoint.connect do |peer|
        message = peer.read(512) # received EVENT SUGGEST CjPvE5t9
        puts "Sent #{data}, got response: #{message}"
        search_done = true
      end
    end
  end
end