Mercurial Hosting > luan
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();