Mercurial Hosting > luan
diff lucene/src/luan/modules/lucene/Web_search.luan @ 544:c5a93767cc5c
lucene overhaul, untested
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 12 Jun 2015 19:11:44 -0600 |
parents | 4362eb720da9 |
children | ddcd4296107a |
line wrap: on
line diff
--- a/lucene/src/luan/modules/lucene/Web_search.luan Mon Jun 08 01:11:08 2015 -0400 +++ b/lucene/src/luan/modules/lucene/Web_search.luan Fri Jun 12 19:11:44 2015 -0600 @@ -4,10 +4,6 @@ local ipairs = Luan.ipairs local range = Luan.range local to_string = Luan.to_string -local Number = require "luan:Number" -local integer = Number.integer -local long = Number.long -local double = Number.double local Io = require "luan:Io" local Http = require "luan:http/Http" local String = require "luan:String" @@ -31,8 +27,8 @@ <label>Query:</label> </div> <div colspan=10> - <input name="query" size="80" value="query.all_docs" autofocus /> - <div textcolor="#888">Query examples: <i>query.term{ type = 'user' }</i> or <i>"type:user AND name:Joe"</i></div> + <input name="query" size="80" autofocus /> + <div textcolor="#888">Query examples: <i>type:user</i> or <i>+type:user +name:Joe"</i></div> </div> </div> <div row margin-top="1em"> @@ -49,7 +45,7 @@ </div> <div colspan=10> <input name="sort" size="60" /> - <div textcolor="#888">Sort examples: sort{{ field = 'id', type='int' }}</div> + <div textcolor="#888">Sort examples: <i>name, id</i></div> </div> </div> <div row margin-top="1em"> @@ -130,20 +126,13 @@ return function() Io.stdout = Http.response.text_writer() - local query_string = Http.request.parameter.query - if query_string == nil then + local query = Http.request.parameter.query + if query == nil then form() return end - local query_env = { - query=index.query; - integer=integer; - long=long; - double=double; - } - local query = load(query_string,"<query>",query_env,true)() local rows = string_to_number(Http.request.parameter.rows) - local sort = load(Http.request.parameter.sort,"<sort>",{sort=index.query.sort},true)() + local sort = Http.request.parameter.sort index.Searcher( function(searcher) local results, length, total_hits = searcher.search(query,rows,sort) local headers = {}