Mercurial Hosting > luan
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 |