1
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local Io = require "luan:Io.luan"
|
|
4 local uri = Io.uri or error()
|
|
5 local Table = require "luan:Table.luan"
|
|
6 local concat = Table.concat or error()
|
|
7 local Lucene = require "luan:lucene/Lucene.luan"
|
|
8 local Shared = require "site:/lib/Shared.luan"
|
|
9 local to_list = Shared.to_list or error()
|
|
10
|
|
11
|
|
12 local function supplementer(doc)
|
|
13 local t = {}
|
|
14 t[#t+1] = doc.user_name
|
|
15 if doc.category ~= nil then
|
|
16 t[#t+1] = concat(to_list(doc.category)," ")
|
|
17 end
|
|
18 t[#t+1] = doc.description
|
|
19 return {
|
|
20 free = concat(t," ")
|
|
21 }
|
|
22 end
|
|
23
|
|
24 local dir = uri("site:/lucene")
|
|
25
|
|
26 local options = {
|
|
27 supplementer = supplementer
|
|
28 default_type = Lucene.type.english
|
|
29 default_fields = {"free"}
|
|
30 }
|
|
31
|
|
32 local Db = Lucene.index(dir,options)
|
|
33
|
|
34 Db.indexed_fields.free = Lucene.type.english
|
|
35 Db.indexed_fields.user_id = Lucene.type.string
|
|
36 Db.indexed_fields.user_name = Lucene.type.english
|
|
37 Db.indexed_fields.category = Lucene.type.english
|
|
38 Db.indexed_fields.description = Lucene.type.english
|
|
39
|
|
40 return Db
|