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