mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 06:37:19 -04:00
- Update Clients::Search to block on the search ops.
Clients::Search#search now returns [hits, results_array]
This commit is contained in:
parent
a35abbbdad
commit
1b7e57b8d0
4 changed files with 29 additions and 12 deletions
|
@ -12,19 +12,19 @@ def main(args)
|
|||
$stderr.puts "Usage: search configfile log_type query"
|
||||
end
|
||||
client = LogStash::Net::Clients::Search.new(args[0])
|
||||
client.search({
|
||||
hits, results = client.search({
|
||||
:log_type => args[1],
|
||||
:query => args[2],
|
||||
:limit => 100,
|
||||
})
|
||||
|
||||
# Wait for the client to decide it's done.
|
||||
client.run
|
||||
#client.run
|
||||
|
||||
# Collate & print results.
|
||||
puts "Hits: #{client.hits}"
|
||||
puts "Hits: #{hits}"
|
||||
puts ""
|
||||
puts client.results.sort_by { |r| r[0] }.collect { |r| r[1] }.join("\n")
|
||||
puts results.sort_by { |r| r[0] }.collect { |r| r[1] }.join("\n")
|
||||
|
||||
return 0
|
||||
end
|
||||
|
|
|
@ -74,10 +74,27 @@ module LogStash::Net::Clients
|
|||
search_msg.query = options[:query]
|
||||
search_msg.limit = options[:limit]
|
||||
search_msg.offset = options[:offset]
|
||||
hits = 0
|
||||
results = []
|
||||
ops = []
|
||||
@indexers.each do |i|
|
||||
sendmsg(i, hits_msg)
|
||||
sendmsg(i, search_msg)
|
||||
ops << sendmsg(i, hits_msg) do |msg|
|
||||
hits += msg.hits
|
||||
:finished
|
||||
end
|
||||
ops << sendmsg(i, search_msg) do |msg|
|
||||
msg.results.each do |result|
|
||||
results << result
|
||||
end
|
||||
:finished if msg.finished
|
||||
end
|
||||
end
|
||||
|
||||
ops.each do |op|
|
||||
op.wait_until_finished
|
||||
end
|
||||
|
||||
return [hits, results]
|
||||
end
|
||||
end; end # class LogStash::Net::Clients::Search
|
||||
|
||||
|
|
|
@ -16,10 +16,10 @@ class Search < Application
|
|||
|
||||
@search = LogStash::Net::Clients::Search.new("/home/jls/projects/logstash/logstashd.yaml")
|
||||
params[:query] = params[:q]
|
||||
@search.search(params)
|
||||
|
||||
Timeout.timeout(10) do
|
||||
@search.run
|
||||
@hits, @results = @search.search(params)
|
||||
#@search.run
|
||||
render
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
<% end =%>
|
||||
<hr>
|
||||
|
||||
<h4>Results <%= params[:offset] %> - <%= params[:offset] + params[:limit] %> of <%= @search.hits %> for <%=h params[:q] %></h4>
|
||||
<h4>Results <%= params[:offset] %> - <%= params[:offset] + params[:limit] %> of <%= @hits %> for <%=h params[:q] %></h4>
|
||||
<% if params[:offset] > 0 %>
|
||||
<%= link_to "prev", url(:controller => "search", :action => "query", :q => params[:q], :offset => [0, params[:offset] - params[:limit]].max, :limit => params[:limit]), :log_type => params[:log_type] %>
|
||||
<% end %>
|
||||
<% if params[:offset] + params[:limit] < @search.hits %>
|
||||
<%= link_to "next", url(:controller => "search", :action => "query", :q => params[:q], :offset => [@search.hits - params[:limit], params[:offset] + params[:limit]].min, :limit => params[:limit], :log_type => params[:log_type]) %>
|
||||
<% if params[:offset] + params[:limit] < @hits %>
|
||||
<%= link_to "next", url(:controller => "search", :action => "query", :q => params[:q], :offset => [@hits - params[:limit], params[:offset] + params[:limit]].min, :limit => params[:limit], :log_type => params[:log_type]) %>
|
||||
<% end %>
|
||||
|
||||
<pre>
|
||||
<%=h @search.results.sort_by { |r| r[0] }.collect { |r| r[1] }.join("\n") %>
|
||||
<%=h @results.sort_by { |r| r[0] }.collect { |r| r[1] }.join("\n") %>
|
||||
</pre>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue