From d10337c6edde3be5436b154a76aac8500bb94d66 Mon Sep 17 00:00:00 2001 From: john Date: Sat, 18 Jan 2003 15:39:45 +0000 Subject: [PATCH] factored out the "unindex some piece of content code" so it can be used everywhere it is needed. then used it where it is needed. --- .../mircoders/producer/IndexingProducerNode.java | 21 ++------ .../mircoders/producer/UnIndexingProducerNode.java | 41 +------------- source/mircoders/search/IndexUtil.java | 62 ++++++++++++++++++++++ 3 files changed, 67 insertions(+), 57 deletions(-) create mode 100755 source/mircoders/search/IndexUtil.java diff --git a/source/mircoders/producer/IndexingProducerNode.java b/source/mircoders/producer/IndexingProducerNode.java index 0949f4ef..d207dfe8 100755 --- a/source/mircoders/producer/IndexingProducerNode.java +++ b/source/mircoders/producer/IndexingProducerNode.java @@ -66,7 +66,6 @@ public class IndexingProducerNode implements ProducerNode { } public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure { - IndexReader indexReader = null; IndexWriter indexWriter = null; Object data; Entity entity; @@ -98,9 +97,7 @@ public class IndexingProducerNode implements ProducerNode { indexCreator.close(); } - indexReader = IndexReader.open(index); - indexReader.delete(new Term("id",entity.getValue("id"))); - indexReader.close(); + IndexUtil.unindexEntity((EntityContent) entity,index); indexWriter = new IndexWriter(index, new StandardAnalyzer(), false); Document theDoc = new Document(); @@ -162,16 +159,6 @@ public class IndexingProducerNode implements ProducerNode { t.printStackTrace(new PrintWriter(new LoggerToWriterAdapter(aLogger, LoggerWrapper.DEBUG_MESSAGE))); } finally { - if (indexReader != null){ - try{ - indexReader.close(); - } - catch (Throwable t) { - aLogger.warn("Error while closing indexReader: " + t.getMessage()); - } - - } - if (indexWriter != null){ try{ indexWriter.close(); @@ -181,12 +168,10 @@ public class IndexingProducerNode implements ProducerNode { } } - - try{ FSDirectory theIndexDir=FSDirectory.getDirectory(index,false); - if (indexReader.isLocked(theIndexDir)){ - indexReader.unlock(theIndexDir); + if (IndexReader.isLocked(theIndexDir)){ + IndexReader.unlock(theIndexDir); } } catch (Throwable t) { diff --git a/source/mircoders/producer/UnIndexingProducerNode.java b/source/mircoders/producer/UnIndexingProducerNode.java index 15a5a1f2..b180bbf1 100755 --- a/source/mircoders/producer/UnIndexingProducerNode.java +++ b/source/mircoders/producer/UnIndexingProducerNode.java @@ -34,19 +34,11 @@ package mircoders.producer; import java.util.*; import java.io.*; - -import org.apache.lucene.index.*; -import org.apache.lucene.document.Document; -import org.apache.lucene.document.Field; -import org.apache.lucene.store.FSDirectory; - import freemarker.template.*; - import mir.util.*; import mir.log.*; import mir.producer.*; -//import mir.generator.*; import mircoders.global.*; import mircoders.localizer.*; import mir.entity.*; @@ -67,7 +59,6 @@ public class UnIndexingProducerNode implements ProducerNode { } public void produce(Map aValueMap, String aVerb, LoggerWrapper aLogger) throws ProducerFailure { - IndexReader indexReader = null; Object data; Entity entity; String index=null; @@ -91,42 +82,14 @@ public class UnIndexingProducerNode implements ProducerNode { } aLogger.info("UnIndexing " + (String) entity.getValue("id") + " out of " + index); - indexReader = IndexReader.open(index); - indexReader.delete(new Term("id",entity.getValue("id"))); - indexReader.close(); + IndexUtil.unindexEntity((EntityContent) entity,index); } catch (Throwable t) { aLogger.error("Error while unindexing content: " + t.getMessage()); t.printStackTrace(new PrintWriter(new LoggerToWriterAdapter(aLogger, LoggerWrapper.DEBUG_MESSAGE))); } - finally { - if (indexReader != null){ - try{ - indexReader.close(); - } - catch (Throwable t) { - aLogger.warn("Error while closing indexReader: " + t.getMessage()); - } - - } - - try{ - if (index != null){ - FSDirectory theIndexDir=FSDirectory.getDirectory(index,false); - if (indexReader.isLocked(theIndexDir)){ - indexReader.unlock(theIndexDir); - } - } - } - catch (Throwable t) { - aLogger.warn("Error while unlocking index: " + t.getMessage()); - } - } - - - - + endTime = System.currentTimeMillis(); aLogger.info(" UnIndexTime: " + (endTime-startTime) + " ms
"); diff --git a/source/mircoders/search/IndexUtil.java b/source/mircoders/search/IndexUtil.java new file mode 100755 index 00000000..3389ebd0 --- /dev/null +++ b/source/mircoders/search/IndexUtil.java @@ -0,0 +1,62 @@ +/* Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * Mir is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with the com.oreilly.servlet library, any library + * licensed under the Apache Software License, The Sun (tm) Java Advanced + * Imaging library (JAI), The Sun JIMI library (or with modified versions of + * the above that use the same license as the above), and distribute linked + * combinations including the two. You must obey the GNU General Public + * License in all respects for all of the code used other than the above + * mentioned libraries. If you modify this file, you may extend this exception + * to your version of the file, but you are not obligated to do so. If you do + * not wish to do so, delete this exception statement from your version. + */ + +package mircoders.search; + +import java.util.*; +import java.io.*; +import mircoders.entity.*; +import org.apache.lucene.index.*; +import org.apache.lucene.store.FSDirectory; + + +public class IndexUtil { + public static void unindexEntity (EntityContent entity,String index) throws IOException{ + IndexReader indexReader = null; + try{ + indexReader = IndexReader.open(index); + indexReader.delete(new Term("id",entity.getValue("id"))); + indexReader.close(); + } + catch(Exception e){ + if (indexReader != null){ + indexReader.close(); + } + } + finally { + if (indexReader != null){ + FSDirectory theIndexDir=FSDirectory.getDirectory(index,false); + if (IndexReader.isLocked(theIndexDir)){ + IndexReader.unlock(theIndexDir); + } + } + } + } +} -- 2.11.0