org.apache.lucene.store.instantiated
Class InstantiatedIndexWriter

java.lang.Object
  extended by org.apache.lucene.store.instantiated.InstantiatedIndexWriter
All Implemented Interfaces:
Closeable

public class InstantiatedIndexWriter
extends Object
implements Closeable

This class, similar to IndexWriter, has no locking mechanism.

InstantiatedIndexReader is navigating the same instances in memory as this writer is updating so searchers active while you are committing are bound to throw exceptions.

Consider using InstantiatedIndex as if it was immutable.

See Also:
IndexWriter

Constructor Summary
InstantiatedIndexWriter(InstantiatedIndex index)
           
InstantiatedIndexWriter(InstantiatedIndex index, Analyzer analyzer)
           
InstantiatedIndexWriter(InstantiatedIndex index, Analyzer analyzer, boolean create)
           
 
Method Summary
 void abort()
           
 void addDocument(Document doc)
          Adds a document to this index.
 void addDocument(Document doc, Analyzer analyzer)
          Adds a document to this index, using the provided analyzer instead of the value of getAnalyzer().
protected  void addDocument(InstantiatedDocument document, Analyzer analyzer)
          Tokenizes a document and adds it to the buffer.
 void addIndexes(IndexReader[] readers)
           
 void close()
          Flushes all changes to an index and closes all associated files.
 void commit()
          Locks the index and commits the buffered documents.
 void deleteDocuments(Term term)
           
 void deleteDocuments(Term[] terms)
           
 int docCount()
          Returns the number of documents currently in this index.
 Analyzer getAnalyzer()
           
 PrintStream getInfoStream()
           
 int getMaxFieldLength()
           
 int getMergeFactor()
           
 Similarity getSimilarity()
           
 void setInfoStream(PrintStream infoStream)
          If non-null, information about merges and a message when maxFieldLength is reached could be printed to this -- currently not yet implemented.
 void setMaxFieldLength(int maxFieldLength)
           
 void setMergeFactor(int mergeFactor)
          The sweetspot for this implementation is somewhere around 2500 at 2K text large documents.
 void setSimilarity(Similarity similarity)
           
 void updateDocument(Term term, Document doc)
           
 void updateDocument(Term term, Document doc, Analyzer analyzer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InstantiatedIndexWriter

public InstantiatedIndexWriter(InstantiatedIndex index)
                        throws IOException
Throws:
IOException

InstantiatedIndexWriter

public InstantiatedIndexWriter(InstantiatedIndex index,
                               Analyzer analyzer)
                        throws IOException
Throws:
IOException

InstantiatedIndexWriter

public InstantiatedIndexWriter(InstantiatedIndex index,
                               Analyzer analyzer,
                               boolean create)
                        throws IOException
Throws:
IOException
Method Detail

setMergeFactor

public void setMergeFactor(int mergeFactor)
The sweetspot for this implementation is somewhere around 2500 at 2K text large documents.

Benchmark output:

  ------------> Report sum by Prefix (MAddDocs) and Round (8 about 8 out of 160153)
  Operation      round  mrg buf cmpnd   runCnt   recsPerRun        rec/s  elapsedSec    avgUsedMem    avgTotalMem
  MAddDocs_20000     0   10  10  true        1        20000         81,4      245,68   200 325 152    268 156 928
  MAddDocs_20000 -   1 1000  10  true -  -   1 -  -   20000 -  -   494,1 -  -  40,47 - 247 119 072 -  347 025 408
  MAddDocs_20000     2   10 100  true        1        20000        104,8      190,81   233 895 552    363 720 704
  MAddDocs_20000 -   3 2000 100  true -  -   1 -  -   20000 -  -   527,2 -  -  37,94 - 266 136 448 -  378 273 792
  MAddDocs_20000     4   10  10 false        1        20000        103,2      193,75   222 089 792    378 273 792
  MAddDocs_20000 -   5 3000  10 false -  -   1 -  -   20000 -  -   545,2 -  -  36,69 - 237 917 152 -  378 273 792
  MAddDocs_20000     6   10 100 false        1        20000        102,7      194,67   237 018 976    378 273 792
  MAddDocs_20000 -   7 4000 100 false -  -   1 -  -   20000 -  -   535,8 -  -  37,33 - 309 680 640 -  501 968 896
 

See Also:
LogMergePolicy.setMergeFactor(int)

getMergeFactor

public int getMergeFactor()
See Also:
LogMergePolicy.getMergeFactor()

setInfoStream

public void setInfoStream(PrintStream infoStream)
If non-null, information about merges and a message when maxFieldLength is reached could be printed to this -- currently not yet implemented.


abort

public void abort()
           throws IOException
Throws:
IOException

addIndexes

public void addIndexes(IndexReader[] readers)

getInfoStream

public PrintStream getInfoStream()

close

public void close()
           throws IOException
Flushes all changes to an index and closes all associated files.

Specified by:
close in interface Closeable
Throws:
IOException

docCount

public int docCount()
Returns the number of documents currently in this index.


commit

public void commit()
            throws IOException
Locks the index and commits the buffered documents.

Throws:
IOException

addDocument

public void addDocument(Document doc)
                 throws IOException
Adds a document to this index. If the document contains more than setMaxFieldLength(int) terms for a given field, the remainder are discarded.

Throws:
IOException

addDocument

public void addDocument(Document doc,
                        Analyzer analyzer)
                 throws IOException
Adds a document to this index, using the provided analyzer instead of the value of getAnalyzer(). If the document contains more than setMaxFieldLength(int) terms for a given field, the remainder are discarded.

Parameters:
doc -
analyzer -
Throws:
IOException

addDocument

protected void addDocument(InstantiatedDocument document,
                           Analyzer analyzer)
                    throws IOException
Tokenizes a document and adds it to the buffer. Try to do all calculations in this method rather than in commit, as this is a non locking method. Remember, this index implementation expects unlimited memory for maximum speed.

Parameters:
document -
analyzer -
Throws:
IOException

deleteDocuments

public void deleteDocuments(Term term)
                     throws IOException
Throws:
IOException

deleteDocuments

public void deleteDocuments(Term[] terms)
                     throws IOException
Throws:
IOException

updateDocument

public void updateDocument(Term term,
                           Document doc)
                    throws IOException
Throws:
IOException

updateDocument

public void updateDocument(Term term,
                           Document doc,
                           Analyzer analyzer)
                    throws IOException
Throws:
IOException

getMaxFieldLength

public int getMaxFieldLength()

setMaxFieldLength

public void setMaxFieldLength(int maxFieldLength)

getSimilarity

public Similarity getSimilarity()

setSimilarity

public void setSimilarity(Similarity similarity)

getAnalyzer

public Analyzer getAnalyzer()


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.