Hi, 

I'm new to Lucene (using 3.0.3), and just started to check out the behavior of 
the 'optimize()' method (which is quite important for our application).
Could it be that 'optimize' cancels out the 'compoundFile' mode? Or am I doing 
something wrong? 

Here's my test: I create an indexWriter with compoundFile=true, then perform 
some writes+commits (which generates several 'cfs' files).
Then I call 'optimize()'... I expected this to yield a single optimized 'cfs' 
file, but instead I get lots of different files - 'fdt', 'fdx', 'fnm' etc...

The detailed code:
// Create indexWriter with 'compoundfile=true':
Version version=Version.LUCENE_30;
Directory dir = FSDirectory.open(new File("c:/luceneTemp"));
Analyzer analyzer = new StandardAnalyzer(version);
IndexWriter writer = new IndexWriter(
         dir, analyzer, true, IndexWriter.MaxFieldLength.LIMITED);
writer.setUseCompoundFile(true);

// Perform some writes + commits.
// This yields several 'cfs' files as expected:
writer.addDocument(...);
writer.commit();
writer.addDocument(...);

writer.commit();
Thread.sleep(20000);  // give myself time to see the generated 'cfs' files

// Optimize - why does it yield lots of separate files ('fdt', 'fdx', etc)?
writer.optimize();


Thanks.



      

Reply via email to