diff lucene/src/luan/modules/lucene/Ab_testing.luan @ 545:ddcd4296107a

clean up lucene search
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 14 Jun 2015 01:34:42 -0600
parents c5a93767cc5c
children ca169567ce07
line wrap: on
line diff
--- a/lucene/src/luan/modules/lucene/Ab_testing.luan	Fri Jun 12 19:11:44 2015 -0600
+++ b/lucene/src/luan/modules/lucene/Ab_testing.luan	Sun Jun 14 01:34:42 2015 -0600
@@ -41,37 +41,36 @@
 
 		-- returns map of event name to (map of value to result) and "start_date"
 		function test.results()
-			return index.Searcher( function(searcher)
-				local results = {}
-				for name in pairs(test.aggregator_factories) do
-					results[name] = {}
+			local results = {}
+			for name in pairs(test.aggregator_factories) do
+				results[name] = {}
+			end
+			local date_field = test.date_field
+			local start_date = nil
+			for _, value in ipairs(test.values) do
+				local aggregators = {}
+				for name, factory in pairs(test.aggregator_factories) do
+					aggregators[name] = factory()
 				end
-				local date_field = test.date_field
-				local start_date = nil
-				for _, value in ipairs(test.values) do
-					local aggregators = {}
-					for name, factory in pairs(test.aggregator_factories) do
-						aggregators[name] = factory()
+				local query = field..":"..value
+				index.advanced_search(query, function(_,doc_fn)
+					local doc = doc_fn()
+					for _, aggregator in pairs(aggregators) do
+						aggregator.aggregate(doc)
 					end
-					local query = field..":"..value
-					searcher.search(query, function(doc)
-						for _, aggregator in pairs(aggregators) do
-							aggregator.aggregate(doc)
+					if date_field ~= nil then
+						local date = doc[date_field]
+						if date ~= nil and (start_date==nil or start_date > date) then
+							start_date = date
 						end
-						if date_field ~= nil then
-							local date = doc[date_field]
-							if date ~= nil and (start_date==nil or start_date > date) then
-								start_date = date
-							end
-						end
-					end)
-					for name, aggregator in pairs(aggregators) do
-						results[name][value] = aggregator.result
 					end
+				end)
+				for name, aggregator in pairs(aggregators) do
+					results[name][value] = aggregator.result
 				end
-				results.start_date = start_date
-				return results
-			end )
+			end
+			results.start_date = start_date
+			return results
 		end
 
 		function test.fancy_results()