diff lucene/src/luan/modules/lucene/Lucene.luan @ 707:1ed9e55f0be8

replace lucene.backup with lucene.zip implemented in luan, and add lucene.snapshot
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 18 May 2016 15:46:51 -0600
parents ca169567ce07
children 96a280ca32a2
line wrap: on
line diff
--- a/lucene/src/luan/modules/lucene/Lucene.luan	Tue May 17 19:00:25 2016 -0600
+++ b/lucene/src/luan/modules/lucene/Lucene.luan	Wed May 18 15:46:51 2016 -0600
@@ -4,6 +4,9 @@
 local ipairs = Luan.ipairs or error()
 local type = Luan.type or error()
 local Html = require "luan:Html.luan"
+local Io = require "luan:Io.luan"
+local String = require "luan:String.luan"
+local matches = String.matches or error()
 local LuceneIndex = require "java:luan.modules.lucene.LuceneIndex"
 local NumberFieldParser = require "java:sane.lucene.queryparser.NumberFieldParser"
 local StringFieldParser = require "java:sane.lucene.queryparser.StringFieldParser"
@@ -35,7 +38,8 @@
 	index.indexed_only_fields = java_index.indexed_only_fields
 
 	index.to_string = java_index.to_string
-	index.backup = java_index.backup
+--	index.backup = java_index.backup
+	index.snapshot = java_index.snapshot
 	index.advanced_search = java_index.advanced_search
 	index.search_in_transaction = java_index.search_in_transaction
 	index.delete_all = java_index.delete_all
@@ -87,6 +91,17 @@
 		end
 	end
 
+	function index.zip(zip_file)
+		matches(zip_file,[[\.zip$]]) or error("file "..zip_file.." doesn't end with '.zip'")
+		index.snapshot( function(dir,file_names)
+			local t = {}
+			for _, file_name in ipairs(file_names) do
+				t[file_name] = "file:"..dir.."/"..file_name
+			end
+			Io.zip(zip_file,t)
+		end )
+	end
+
 	return index
 end