Mercurial Hosting > luan
diff src/luan/modules/lucene/Lucene.luan @ 1345:6f8988830098
unique LuceneIndex per dir
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 25 Feb 2019 11:00:10 -0700 |
parents | dc2af9d5463b |
children | af478a1bd23d |
line wrap: on
line diff
--- a/src/luan/modules/lucene/Lucene.luan Mon Feb 25 07:00:55 2019 -0700 +++ b/src/luan/modules/lucene/Lucene.luan Mon Feb 25 11:00:10 2019 -0700 @@ -12,10 +12,7 @@ local Rpc = require "luan:Rpc.luan" local LuceneIndex = require "java:luan.modules.lucene.LuceneIndex" local NumberFieldParser = require "java:luan.lib.queryparser.NumberFieldParser" -local StringFieldParser = require "java:luan.lib.queryparser.StringFieldParser" local SaneQueryParser = require "java:luan.lib.queryparser.SaneQueryParser" -local Version = require "java:org.apache.lucene.util.Version" -local EnglishAnalyzer = require "java:org.apache.lucene.analysis.en.EnglishAnalyzer" local Lucene = {} @@ -23,12 +20,11 @@ Lucene.instances = {} Lucene.type = { - string = LuceneIndex.STRING_FIELD_PARSER; - integer = NumberFieldParser.INT; - long = NumberFieldParser.LONG; - double = NumberFieldParser.DOUBLE; - - english = StringFieldParser.new(EnglishAnalyzer.new(Version.LUCENE_CURRENT)) + english = LuceneIndex.ENGLISH_FIELD_PARSER + string = LuceneIndex.STRING_FIELD_PARSER + integer = NumberFieldParser.INT + long = NumberFieldParser.LONG + double = NumberFieldParser.DOUBLE } Lucene.literal = SaneQueryParser.literal @@ -36,9 +32,9 @@ function Lucene.index(index_dir,default_type,default_fields) local index = {} index.dir = index_dir - local java_index = LuceneIndex.new(index_dir,default_type,default_fields) + local java_index, closer = LuceneIndex.getLuceneIndex(index_dir,default_type,default_fields) index.java = java_index --- index.indexed_fields = java_index.indexedFieldsMeta.newTable() + index.closer = closer or error() index.indexed_fields = {} local mt = {} @@ -70,7 +66,7 @@ function index.close() Lucene.instances[index] = nil - java_index.close() + closer.close() end function index.search( query, from, to, options ) @@ -148,7 +144,7 @@ local lucene_dir = uri("file:"..index.dir) local before_restore = lucene_dir.parent().child("before_restore.zip") index.zip(before_restore) - java_index.close() + java_index.doClose() lucene_dir.delete() Io.uri("os:unzip "..zip_file.canonical().to_string(),{dir=lucene_dir.parent()}).read_text() java_index.reopen()