Package org.apache.lucene.benchmark.byTask.feeds

## Class DocMaker

- java.lang.Object
- - org.apache.lucene.benchmark.byTask.feeds.DocMaker

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`
  Direct Known Subclasses:
    `SpatialDocMaker`

      public class DocMaker
      extends Object
      implements Closeable

  Creates `Document` objects. Uses a `ContentSource` to generate `DocData` objects. Supports the following parameters:
  - content.source - specifies the `ContentSource` class to use (default SingleDocSource).
  - doc.stored - specifies whether fields should be stored (default false).
  - doc.body.stored - specifies whether the body field should be stored (default = doc.stored).
  - doc.tokenized - specifies whether fields should be tokenized (default true).
  - doc.body.tokenized - specifies whether the body field should be tokenized (default = doc.tokenized).
  - doc.body.offsets - specifies whether to add offsets into the postings index for the body field. It is useful for highlighting. (default false)
  - doc.tokenized.norms - specifies whether norms should be stored in the index or not. (default false).
  - doc.body.tokenized.norms - specifies whether norms should be stored in the index for the body field. This can be set to true, while `doc.tokenized.norms` is set to false, to allow norms storing just for the body field. (default true).
  - doc.term.vector - specifies whether term vectors should be stored for fields (default false).
  - doc.term.vector.positions - specifies whether term vectors should be stored with positions (default false).
  - doc.term.vector.offsets - specifies whether term vectors should be stored with offsets (default false).
  - doc.store.body.bytes - specifies whether to store the raw bytes of the document's content in the document (default false).
  - doc.reuse.fields - specifies whether Field and Document objects should be reused (default true).
  - doc.index.props - specifies whether the properties returned by
  - doc.random.id.limit - if specified, docs will be assigned random IDs from 0 to this limit. This is useful with UpdateDoc for testing performance of IndexWriter.updateDocument. `DocData.getProps()` will be indexed. (default false).

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected static class` | `DocMaker.DocState` | Document state, supports reuse of field instances across documents (see `reuseFields` parameter).

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `BODY_FIELD` |
    `protected FieldType` | `bodyValType` |
    `static String` | `BYTES_FIELD` |
    `protected Config` | `config` |
    `static String` | `DATE_FIELD` |
    `static String` | `DATE_MSEC_FIELD` |
    `static String` | `ID_FIELD` |
    `protected boolean` | `indexProperties` |
    `static String` | `NAME_FIELD` |
    `protected boolean` | `reuseFields` |
    `protected ContentSource` | `source` |
    `static String` | `TIME_SEC_FIELD` |
    `static String` | `TITLE_FIELD` |
    `protected FieldType` | `valType` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DocMaker()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Closes the `DocMaker`.
    `protected DocMaker.DocState` | `getDocState()` |
    `Document` | `makeDocument()` | Creates a `Document` object ready for indexing.
    `Document` | `makeDocument​(int size)` | Same as `makeDocument()`, only this method creates a document of the given size input by `size`.
    `void` | `resetInputs()` | Reset inputs so that the test run would behave, input wise, as if it just started.
    `void` | `setConfig​(Config config, ContentSource source)` | Set the configuration parameters of this doc maker.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### BODY_FIELD

          public static final String BODY_FIELD

      See Also:
        Constant Field Values

    - #### TITLE_FIELD

          public static final String TITLE_FIELD

      See Also:
        Constant Field Values

    - #### DATE_FIELD

          public static final String DATE_FIELD

      See Also:
        Constant Field Values

    - #### DATE_MSEC_FIELD

          public static final String DATE_MSEC_FIELD

      See Also:
        Constant Field Values

    - #### TIME_SEC_FIELD

          public static final String TIME_SEC_FIELD

      See Also:
        Constant Field Values

    - #### ID_FIELD

          public static final String ID_FIELD

      See Also:
        Constant Field Values

    - #### BYTES_FIELD

          public static final String BYTES_FIELD

      See Also:
        Constant Field Values

    - #### NAME_FIELD

          public static final String NAME_FIELD

      See Also:
        Constant Field Values

    - #### config

          protected Config config

    - #### valType

          protected FieldType valType

    - #### bodyValType

          protected FieldType bodyValType

    - #### source

          protected ContentSource source

    - #### reuseFields

          protected boolean reuseFields

    - #### indexProperties

          protected boolean indexProperties

  - ### Constructor Detail

    - #### DocMaker

          public DocMaker()

  - ### Method Detail

    - #### getDocState

          protected DocMaker.DocState getDocState()

    - #### close

          public void close()
                     throws IOException

      Closes the `DocMaker`. The base implementation closes the `ContentSource`, and it can be overridden to do more work (but make sure to call super.close()).
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Throws:
        `IOException`

    - #### makeDocument

          public Document makeDocument()
                                throws Exception

      Creates a `Document` object ready for indexing. This method uses the `ContentSource` to get the next document from the source, and creates a `Document` object from the returned fields. If `reuseFields` was set to true, it will reuse `Document` and `Field` instances.
      Throws:
        `Exception`

    - #### makeDocument

          public Document makeDocument​(int size)
                                throws Exception

      Same as `makeDocument()`, only this method creates a document of the given size input by `size`.
      Throws:
        `Exception`

    - #### resetInputs

          public void resetInputs()
                           throws IOException

      Reset inputs so that the test run would behave, input wise, as if it just started.
      Throws:
        `IOException`

    - #### setConfig

          public void setConfig​(Config config,
                                ContentSource source)

      Set the configuration parameters of this doc maker.