Mercurial Hosting > luan
comparison src/luan/modules/lucene/Web_search.luan @ 1573:c6b50b7b958c
lucene/Web_search improvement
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 12 Dec 2020 21:01:04 -0700 |
parents | f7649ad6e3e7 |
children | 4d70e9543ef2 |
comparison
equal
deleted
inserted
replaced
1572:45e42f403fb3 | 1573:c6b50b7b958c |
---|---|
13 local Html = require "luan:Html.luan" | 13 local Html = require "luan:Html.luan" |
14 local html_encode = Html.encode or error() | 14 local html_encode = Html.encode or error() |
15 local Number = require "luan:Number.luan" | 15 local Number = require "luan:Number.luan" |
16 local Table = require "luan:Table.luan" | 16 local Table = require "luan:Table.luan" |
17 local size = Table.size or error() | 17 local size = Table.size or error() |
18 local Logging = require "luan:logging/Logging.luan" | |
19 local logger = Logging.logger "lucene/Web_search" | |
18 | 20 |
19 | 21 |
20 local Web_search = {} | 22 local Web_search = {} |
21 | 23 |
22 local function style() | 24 local function style() |
106 local n = #tbl + 1 | 108 local n = #tbl + 1 |
107 tbl[n] = val | 109 tbl[n] = val |
108 return n | 110 return n |
109 end | 111 end |
110 | 112 |
113 local function failed(e) | |
114 logger.info(e) | |
115 --logger.info(stringify(e)) | |
116 local msg = e.get_message() | |
117 %> | |
118 <!doctype html> | |
119 <html> | |
120 <head> | |
121 <title>Lucene</title> | |
122 <style> | |
123 <% style() %> | |
124 </style> | |
125 </head> | |
126 <body> | |
127 <h2>Query Failed</h2> | |
128 <pre><%=msg%></pre> | |
129 </body> | |
130 </html> | |
131 <% | |
132 end | |
133 | |
111 local function result(index) | 134 local function result(index) |
112 local query = Http.request.parameters.query | 135 local query = Http.request.parameters.query |
113 local rows = string_to_number(Http.request.parameters.rows) | 136 local rows = string_to_number(Http.request.parameters.rows) |
114 local sort = Http.request.parameters.sort | 137 local sort = Http.request.parameters.sort |
115 local results = index.search(query,1,rows,{sort=sort}) | 138 local results |
139 try | |
140 results = index.search(query,1,rows,{sort=sort}) | |
141 catch e | |
142 failed(e) | |
143 return | |
144 end | |
116 local headers = {} | 145 local headers = {} |
117 local table = {} | 146 local table = {} |
118 for _, doc in ipairs(results) do | 147 for _, doc in ipairs(results) do |
119 local row = {} | 148 local row = {} |
120 for field, value in pairs(doc) do | 149 for field, value in pairs(doc) do |