comparison src/luan/modules/lucene/Lucene.luan @ 1429:82415c9c0015

move versioning into Lucene
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 24 Nov 2019 23:07:21 -0700
parents a076e89a2879
children f3a417074cea
comparison
equal deleted inserted replaced
1428:d21a7cf8fa9e 1429:82415c9c0015
1 require "java" 1 require "java"
2 local Luan = require "luan:Luan.luan" 2 local Luan = require "luan:Luan.luan"
3 local error = Luan.error 3 local error = Luan.error
4 local ipairs = Luan.ipairs or error() 4 local ipairs = Luan.ipairs or error()
5 local pairs = Luan.pairs or error()
5 local type = Luan.type or error() 6 local type = Luan.type or error()
6 local set_metatable = Luan.set_metatable or error() 7 local set_metatable = Luan.set_metatable or error()
7 local Boot = require "luan:Boot.luan" 8 local Boot = require "luan:Boot.luan"
8 local Html = require "luan:Html.luan" 9 local Html = require "luan:Html.luan"
10 local Number = require "luan:Number.luan"
11 local integer = Number.integer or error()
9 local Io = require "luan:Io.luan" 12 local Io = require "luan:Io.luan"
10 local uri = Io.uri or error() 13 local uri = Io.uri or error()
11 local String = require "luan:String.luan" 14 local String = require "luan:String.luan"
12 local matches = String.matches or error() 15 local matches = String.matches or error()
13 local Rpc = require "luan:Rpc.luan" 16 local Rpc = require "luan:Rpc.luan"
157 java_index.reopen() 160 java_index.reopen()
158 end ) 161 end )
159 end 162 end
160 index.restore = Boot.no_security(index.restore) 163 index.restore = Boot.no_security(index.restore)
161 164
165 function index.update(steps)
166 local version = 0
167 for i in pairs(steps) do
168 if version < i then
169 version = i
170 end
171 end
172 local doc = index.get_document"type:version" or { type="version", version=integer(0) }
173 while doc.version < version do
174 doc.version = integer(doc.version + 1)
175 logger.error("step "..doc.version)
176 index.run_in_transaction( function()
177 local step = steps[doc.version] or error("missing step "..doc.version)
178 step()
179 index.save(doc)
180 end )
181 end
182 end
183
162 local function multi_error() 184 local function multi_error()
163 error "multiple lucene instances" 185 error "multiple lucene instances"
164 end 186 end
165 187
166 if Rpc.functions.lucene_backup == nil then 188 if Rpc.functions.lucene_backup == nil then