org.apache.lucene.benchmark.byTask.feeds
Class LineDocSource

java.lang.Object
  extended by org.apache.lucene.benchmark.byTask.feeds.ContentItemsSource
      extended by org.apache.lucene.benchmark.byTask.feeds.ContentSource
          extended by org.apache.lucene.benchmark.byTask.feeds.LineDocSource
All Implemented Interfaces:
Closeable

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:


Nested Class Summary
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
LineDocSource()
           
 
Method Summary
 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 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