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

## Class LineDocSource

- java.lang.Object
- - org.apache.lucene.benchmark.byTask.feeds.ContentItemsSource
  - - org.apache.lucene.benchmark.byTask.feeds.ContentSource
    - - org.apache.lucene.benchmark.byTask.feeds.LineDocSource

- All Implemented Interfaces:
    `Closeable`, `AutoCloseable`

      public class LineDocSource
      extends ContentSource

  A `ContentSource` reading one line at a time as a `Document` from a single file. This saves IO cost (over DirContentSource) of recursing through a directory and opening a new file for every document.
  The expected format of each line is (arguments are separated by <TAB>): title, date, body. If a line is read in a different format, a `RuntimeException` will be thrown. In general, you should use this content source for files that were created with `WriteLineDocTask`.
  Config properties:
  - docs.file=<path to the file>
  - content.source.encoding - default to UTF-8.
  - line.parser - default to `LineDocSource.HeaderLineParser` if a header line exists which differs from `WriteLineDocTask.DEFAULT_FIELDS` and to `LineDocSource.SimpleLineParser` otherwise.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `LineDocSource.HeaderLineParser` | `LineDocSource.LineParser` which sets field names and order by the header - any header - of the lines file.
    `static class` | `LineDocSource.LineParser` | Reader of a single input line into `DocData`.
    `static class` | `LineDocSource.SimpleLineParser` | `LineDocSource.LineParser` which ignores the header passed to its constructor and assumes simply that field names and their order are the same as in `WriteLineDocTask.DEFAULT_FIELDS`

  - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.benchmark.byTask.feeds.ContentItemsSource

      `encoding, forever, logStep, verbose`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Called when reading from this content source is no longer required.
    `DocData` | `getNextDocData​(DocData docData)` | Returns the next `DocData` from the content source.
    `void` | `resetInputs()` | Resets the input for this content source, so that the test would behave as if it was just started, input-wise.
    `void` | `setConfig​(Config config)` | Sets the `Config` for this content source.

    - ### Methods inherited from class org.apache.lucene.benchmark.byTask.feeds.ContentItemsSource

      `addBytes, addItem, collectFiles, getBytesCount, getConfig, getItemsCount, getTotalBytesCount, getTotalItemsCount, printStatistics, shouldLog`

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

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

- - ### Constructor Detail

    - #### LineDocSource

          public LineDocSource()

  - ### Method Detail

    - #### close

          public void close()
                     throws IOException

      Description copied from class: `ContentItemsSource`
      Called when reading from this content source is no longer required.
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in class `ContentItemsSource`
      Throws:
        `IOException`

    - #### getNextDocData

          public DocData getNextDocData​(DocData docData)
                                 throws NoMoreDataException,
                                        IOException

      Description copied from class: `ContentSource`
      Returns the next `DocData` from the content source. Implementations must account for multi-threading, as multiple threads can call this method simultaneously.
      Specified by:
        `getNextDocData` in class `ContentSource`
      Throws:
        `NoMoreDataException`
        `IOException`

    - #### resetInputs

          public void resetInputs()
                           throws IOException

      Description copied from class: `ContentItemsSource`
      Resets the input for this content source, so that the test would behave as if it was just started, input-wise.

      NOTE: the default implementation resets the number of bytes and items generated since the last reset, so it's important to call super.resetInputs in case you override this method.

      Overrides:
        `resetInputs` in class `ContentItemsSource`
      Throws:
        `IOException`

    - #### setConfig

          public void setConfig​(Config config)

      Description copied from class: `ContentItemsSource`
      Sets the `Config` for this content source. If you override this method, you must call super.setConfig.
      Overrides:
        `setConfig` in class `ContentItemsSource`