Pārlūkot izejas kodu

Better Elasticsearch adapter

Andrew Kane 8 gadi atpakaļ
vecāks
revīzija
87423bbd36

+ 1 - 1
app/controllers/blazer/base_controller.rb

@@ -54,7 +54,7 @@ module Blazer
     def extract_vars(statement)
       # strip commented out lines
       # and regex {1} or {1,2}
-      statement.gsub(/\-\-.+/, "").gsub(/\/\*.+\*\//m, "").scan(/\{\w*?\}/i).map { |v| v[1...-1] }.reject { |v| /\A\d+(\,\d+)?\z/.match(v) }.uniq
+      statement.gsub(/\-\-.+/, "").gsub(/\/\*.+\*\//m, "").scan(/\{\w*?\}/i).map { |v| v[1...-1] }.reject { |v| /\A\d+(\,\d+)?\z/.match(v) || v.empty? }.uniq
     end
     helper_method :extract_vars
 

+ 4 - 3
lib/blazer/adapters/elasticsearch_adapter.rb

@@ -8,8 +8,9 @@ module Blazer
 
         begin
           response = client.search(body: JSON.parse(statement))
-          columns = ["response"]
-          rows = [[response]]
+          hits = response["hits"]["hits"]
+          columns = hits.first.try(:keys) || []
+          rows = hits.map { |r| r.values }
         rescue => e
           error = e.message
         end
@@ -18,7 +19,7 @@ module Blazer
       end
 
       def tables
-        client.indices.get_aliases.map { |k, v| [k, v["aliases"].keys] }.flatten.uniq
+        client.indices.get_aliases.map { |k, v| [k, v["aliases"].keys] }.flatten.uniq.sort
       end
 
       protected