Mercurial Hosting > luan
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()