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 final String`
`BODY_FIELD`
`protected FieldType`
`bodyValType`
`static final String`
`BYTES_FIELD`
`protected Config`
`config`
`static final String`
`DATE_FIELD`
`static final String`
`DATE_MSEC_FIELD`
`static final String`
`ID_FIELD`
`protected boolean`
`indexProperties`
`static final String`
`NAME_FIELD`
`protected boolean`
`reuseFields`
`protected ContentSource`
`source`
`static final String`
`TIME_SEC_FIELD`
`static final String`
`TITLE_FIELD`
`protected FieldType`
`valType`

## Constructor Summary

Constructors
Constructor
Description
`DocMaker()`

## Method Summary

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 Details

### 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 Details

### DocMaker

public DocMaker()

## Method Details

### 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.