diff src/luan/modules/lucene/LuceneIndex.java @ 1548:736ec76bbf42

lucene log work
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 27 Sep 2020 22:07:18 -0600
parents 35601f15ecc3
children 9cc4cee39b8b
line wrap: on
line diff
--- a/src/luan/modules/lucene/LuceneIndex.java	Thu Sep 24 15:33:56 2020 -0600
+++ b/src/luan/modules/lucene/LuceneIndex.java	Sun Sep 27 22:07:18 2020 -0600
@@ -144,6 +144,7 @@
 	private final PostgresBackup postgresBackup;
 	private boolean wasCreated;
 	private final File logDir;
+	private final long logTime;
 
 	private LuceneIndex(Luan luan,File indexDir,LuanTable options)
 		throws LuanException, IOException, ClassNotFoundException, SQLException
@@ -156,6 +157,7 @@
 		LuanTable postgresSpec = Utils.removeTable(options,"postgres_spec");
 		LuanFunction supplementer = Utils.removeFunction(options,"supplementer");
 		logDir = (File)options.remove("log_dir");
+		logTime = (Long)options.remove("log_time");
 		Utils.checkEmpty(options);
 
 		mfp = defaultFieldParser==null ? new MultiFieldParser() : new MultiFieldParser(defaultFieldParser,defaultFields);
@@ -191,7 +193,7 @@
 		boolean wasCreated = !fsDir.getDirectory().exists();
 		writer = new LuceneIndexWriter(fsDir,config);
 		if( logDir != null )
-			writer = new LoggingIndexWriter((LuceneIndexWriter)writer,logDir);
+			writer = new LoggingIndexWriter((LuceneIndexWriter)writer,logDir,logTime);
 		reader = DirectoryReader.open(fsDir);
 		searcher = new IndexSearcher(reader);
 		initId();
@@ -741,11 +743,11 @@
 		writeLock.lock();
 		boolean ok = false;
 		try {
-			IndexWriter iw = writer.getLuceneIndexWriter();
-			iw.deleteAll();
+			writer.tag("restore_from_postgres");
+			writer.deleteAll();
 			postgresBackup.restoreLucene(this);
 			ok = true;
-			iw.commit();
+			writer.commit();
 			wrote();
 			ensure_open();  // refresh searcher
 			initId();
@@ -791,7 +793,6 @@
 			iw.deleteAll();
 			loggingWriter.playLogs(null);
 			ok = true;
-			iw.commit();
 			wrote();
 			ensure_open();  // refresh searcher
 			initId();