2
|
1 local Luan = require "luan:Luan.luan"
|
|
2 local error = Luan.error
|
|
3 local new_error = Luan.new_error or error()
|
|
4 local Lucene = require "luan:lucene/Lucene.luan"
|
|
5 local Io = require "luan:Io.luan"
|
|
6 local uri = Io.uri or error()
|
|
7 local Http = require "luan:http/Http.luan"
|
|
8 local Thread = require "luan:Thread.luan"
|
|
9 local Time = require "luan:Time.luan"
|
|
10 local Logging = require "luan:logging/Logging.luan"
|
|
11 local logger = Logging.logger "Db"
|
|
12
|
|
13
|
|
14 local dir = uri("site:/private/local/lucene")
|
|
15
|
|
16 local Db = Lucene.index( dir, {
|
|
17 log_dir = uri("site:/private/local/lucene_log")
|
|
18 name = "lucene"
|
|
19 version = 1
|
|
20 } )
|
|
21
|
|
22 Db.indexed_fields.user_email = Lucene.type.lowercase
|
|
23
|
4
|
24 Db.indexed_fields.chat_user_ids = Lucene.type.long
|
|
25 Db.indexed_fields.chat_updated = Lucene.type.long
|
|
26
|
10
|
27 Db.indexed_fields.post_chat_id = Lucene.type.long
|
|
28
|
2
|
29 function Db.not_in_transaction()
|
|
30 logger.error(new_error("not in transaction"))
|
|
31 end
|
|
32
|
|
33 Db.update{
|
|
34 }
|
|
35
|
|
36 if Http.is_serving then
|
|
37 Thread.schedule( Db.check, { delay=0, repeating_delay=Time.period{hours=1} } )
|
|
38 end
|
|
39
|
|
40 return Db
|