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]

Reply via email to