These classes are used to limit the amount of "work" performed by a query. The mechanism is easy to use: simply wrap a Lucene IndexReader with a LimIndexReader instance. Every time a document or position is read from the index, a counter is incremented, and if it exceeds the limit specified to LimIndexReader, an ExcessiveWorkException will be thrown.