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

    Constructors
    Constructor and Description
    `InstantiatedIndexWriter(InstantiatedIndex index)`
    `InstantiatedIndexWriter(InstantiatedIndex index, org.apache.lucene.analysis.Analyzer analyzer)`
    `InstantiatedIndexWriter(InstantiatedIndex index, org.apache.lucene.analysis.Analyzer analyzer, boolean create)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `abort()`
    `void` | `addDocument(org.apache.lucene.document.Document doc)` Adds a document to this index.
    `void` | `addDocument(org.apache.lucene.document.Document doc, org.apache.lucene.analysis.Analyzer analyzer)` Adds a document to this index, using the provided analyzer instead of the value of `getAnalyzer()`.
    `protected void` | `addDocument(InstantiatedDocument document, org.apache.lucene.analysis.Analyzer analyzer)` Tokenizes a document and adds it to the buffer.
    `void` | `addIndexes(org.apache.lucene.index.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(org.apache.lucene.index.Term term)`
    `void` | `deleteDocuments(org.apache.lucene.index.Term[] terms)`
    `int` | `docCount()` Returns the number of documents currently in this index.
    `org.apache.lucene.analysis.Analyzer` | `getAnalyzer()`
    `java.io.PrintStream` | `getInfoStream()`
    `int` | `getMaxFieldLength()`
    `int` | `getMergeFactor()`
    `org.apache.lucene.search.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(org.apache.lucene.search.Similarity similarity)`
    `void` | `updateDocument(org.apache.lucene.index.Term term, org.apache.lucene.document.Document doc)`
    `void` | `updateDocument(org.apache.lucene.index.Term term, org.apache.lucene.document.Document doc, org.apache.lucene.analysis.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,
                                         org.apache.lucene.analysis.Analyzer analyzer)
                                  throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### InstantiatedIndexWriter

          public InstantiatedIndexWriter(InstantiatedIndex index,
                                         org.apache.lucene.analysis.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(org.apache.lucene.index.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(org.apache.lucene.document.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(org.apache.lucene.document.Document doc,
                                  org.apache.lucene.analysis.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,
                                     org.apache.lucene.analysis.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(org.apache.lucene.index.Term term)
                               throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### deleteDocuments

          public void deleteDocuments(org.apache.lucene.index.Term[] terms)
                               throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### updateDocument

          public void updateDocument(org.apache.lucene.index.Term term,
                                     org.apache.lucene.document.Document doc)
                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### updateDocument

          public void updateDocument(org.apache.lucene.index.Term term,
                                     org.apache.lucene.document.Document doc,
                                     org.apache.lucene.analysis.Analyzer analyzer)
                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### getMaxFieldLength

          public int getMaxFieldLength()

    - #### setMaxFieldLength

          public void setMaxFieldLength(int maxFieldLength)

    - #### getSimilarity

          public org.apache.lucene.search.Similarity getSimilarity()

    - #### setSimilarity

          public void setSimilarity(org.apache.lucene.search.Similarity similarity)

    - #### getAnalyzer

          public org.apache.lucene.analysis.Analyzer getAnalyzer()

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