## org.apache.lucene.store.instantiated
Class InstantiatedIndexWriter

    java.lang.Object
      org.apache.lucene.store.instantiated.InstantiatedIndexWriter

    public class InstantiatedIndexWriter

extends java.lang.Object

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()`
`java.io.PrintStream` `getInfoStream()`
`int` `getMaxFieldLength()`
`int` `getMergeFactor()`
`Similarity` `getSimilarity()`
`void` `setInfoStream(java.io.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 java.io.IOException

Throws:
  `java.io.IOException`

### InstantiatedIndexWriter

    public InstantiatedIndexWriter(InstantiatedIndex index,
                                   Analyzer analyzer)
                            throws java.io.IOException

Throws:
  `java.io.IOException`

### InstantiatedIndexWriter

    public InstantiatedIndexWriter(InstantiatedIndex index,
                                   Analyzer analyzer,
                                   boolean create)
                            throws java.io.IOException

Throws:
  `java.io.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:
    `IndexWriter.setMergeFactor(int)`

### getMergeFactor

    public int getMergeFactor()

  See Also:
    `IndexWriter.getMergeFactor()`

### setInfoStream

    public void setInfoStream(java.io.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 java.io.IOException

  Throws:
    `java.io.IOException`

### addIndexes

    public void addIndexes(IndexReader[] readers)

### getInfoStream

    public java.io.PrintStream getInfoStream()

### close

    public void close()
               throws java.io.IOException

  Flushes all changes to an index and closes all associated files.

  Throws:
    `java.io.IOException`

### docCount

    public int docCount()

  Returns the number of documents currently in this index.

### commit

    public void commit()
                throws java.io.IOException

  Locks the index and commits the buffered documents.

  Throws:
    `java.io.IOException`

### addDocument

    public void addDocument(Document doc)
                     throws java.io.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:
    `java.io.IOException`

### addDocument

    public void addDocument(Document doc,
                            Analyzer analyzer)
                     throws java.io.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:
    `java.io.IOException`

### addDocument

    protected void addDocument(InstantiatedDocument document,
                               Analyzer analyzer)
                        throws java.io.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:
    `java.io.IOException`

### deleteDocuments

    public void deleteDocuments(Term term)
                         throws java.io.IOException

  Throws:
    `java.io.IOException`

### deleteDocuments

    public void deleteDocuments(Term[] terms)
                         throws java.io.IOException

  Throws:
    `java.io.IOException`

### updateDocument

    public void updateDocument(Term term,
                               Document doc)
                        throws java.io.IOException

  Throws:
    `java.io.IOException`

### updateDocument

    public void updateDocument(Term term,
                               Document doc,
                               Analyzer analyzer)
                        throws java.io.IOException

  Throws:
    `java.io.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.