annotate src/lib/Db.luan @ 1:bd2abcd7190a

mostly done
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 20 Sep 2022 19:40:39 -0600
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
1 local Luan = require "luan:Luan.luan"
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
2 local error = Luan.error
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
3 local Io = require "luan:Io.luan"
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
4 local uri = Io.uri or error()
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
5 local Table = require "luan:Table.luan"
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
6 local concat = Table.concat or error()
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
7 local Lucene = require "luan:lucene/Lucene.luan"
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
8 local Shared = require "site:/lib/Shared.luan"
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
9 local to_list = Shared.to_list or error()
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
10
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
11
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
12 local function supplementer(doc)
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
13 local t = {}
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
14 t[#t+1] = doc.user_name
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
15 if doc.category ~= nil then
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
16 t[#t+1] = concat(to_list(doc.category)," ")
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
17 end
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
18 t[#t+1] = doc.description
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
19 return {
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
20 free = concat(t," ")
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
21 }
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
22 end
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
23
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
24 local dir = uri("site:/lucene")
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
25
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
26 local options = {
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
27 supplementer = supplementer
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
28 default_type = Lucene.type.english
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
29 default_fields = {"free"}
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
30 }
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
31
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
32 local Db = Lucene.index(dir,options)
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
33
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
34 Db.indexed_fields.free = Lucene.type.english
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
35 Db.indexed_fields.user_id = Lucene.type.string
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
36 Db.indexed_fields.user_name = Lucene.type.english
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
37 Db.indexed_fields.category = Lucene.type.english
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
38 Db.indexed_fields.description = Lucene.type.english
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
39
bd2abcd7190a mostly done
Franklin Schmidt <fschmidt@gmail.com>
parents:
diff changeset
40 return Db