goller 2004/08/08 06:04:00 Modified: src/java/org/apache/lucene/index SegmentMerger.java IndexWriter.java Log: create compound file in merge after all merged segments have been deleted in order to safe disk space. Revision Changes Path 1.12 +2 -8 jakarta-lucene/src/java/org/apache/lucene/index/SegmentMerger.java Index: SegmentMerger.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/SegmentMerger.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- SegmentMerger.java 20 Apr 2004 19:33:35 -0000 1.11 +++ SegmentMerger.java 8 Aug 2004 13:03:59 -0000 1.12 @@ -37,7 +37,6 @@ * @see #add */ final class SegmentMerger { - private boolean useCompoundFile; private Directory directory; private String segment; @@ -56,12 +55,10 @@ * * @param dir The Directory to merge the other segments into * @param name The name of the new segment - * @param compoundFile true if the new segment should use a compoundFile */ - SegmentMerger(Directory dir, String name, boolean compoundFile) { + SegmentMerger(Directory dir, String name) { directory = dir; segment = name; - useCompoundFile = compoundFile; } /** @@ -96,9 +93,6 @@ if (fieldInfos.hasVectors()) mergeVectors(); - if (useCompoundFile) - createCompoundFile(); - return value; } @@ -114,7 +108,7 @@ } } - private final void createCompoundFile() + final void createCompoundFile() throws IOException { CompoundFileWriter cfsWriter = new CompoundFileWriter(directory, segment + ".cfs"); 1.35 +7 -3 jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java Index: IndexWriter.java =================================================================== RCS file: /home/cvs/jakarta-lucene/src/java/org/apache/lucene/index/IndexWriter.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- IndexWriter.java 6 Aug 2004 12:21:24 -0000 1.34 +++ IndexWriter.java 8 Aug 2004 13:03:59 -0000 1.35 @@ -400,7 +400,7 @@ optimize(); // start with zero or 1 seg String mergedName = newSegmentName(); - SegmentMerger merger = new SegmentMerger(directory, mergedName, useCompoundFile); + final SegmentMerger merger = new SegmentMerger(directory, mergedName); final Vector segmentsToDelete = new Vector(); IndexReader sReader = null; @@ -426,6 +426,8 @@ public Object doBody() throws IOException { segmentInfos.write(directory); // commit changes deleteSegments(segmentsToDelete); // delete now-unused segments + if(useCompoundFile) + merger.createCompoundFile(); return null; } }.run(); @@ -479,8 +481,8 @@ throws IOException { String mergedName = newSegmentName(); if (infoStream != null) infoStream.print("merging segments"); - SegmentMerger merger = - new SegmentMerger(directory, mergedName, useCompoundFile); + final SegmentMerger merger = + new SegmentMerger(directory, mergedName); final Vector segmentsToDelete = new Vector(); for (int i = minSegment; i < segmentInfos.size(); i++) { @@ -512,6 +514,8 @@ public Object doBody() throws IOException { segmentInfos.write(directory); // commit before deleting deleteSegments(segmentsToDelete); // delete now-unused segments + if(useCompoundFile) + merger.createCompoundFile(); return null; } }.run();
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]