An IndexReader which reads multiple, parallel indexes. Each index added
/// must have the same number of documents, but typically each contains
/// different fields. Each document contains the union of the fields of all
/// documents with the same document number. When searching, matches for a
/// query term are from the first index added that has the field.
///
/// This is useful, e.g., with collections that have large fields which
/// change rarely and small fields that change more frequently. The smaller
/// fields may be re-indexed in a new index and both indexes may be searched
/// together.
///
///
Warning: It is up to you to make sure all indexes
/// are created and modified the same way. For example, if you add
/// documents to one index, you need to add the same documents in the
/// same order to the other indexes. Failure to do so will result in
/// undefined behavior.
///
public class ParallelReader : IndexReader
{
private System.Collections.ArrayList readers = new System.Collections.ArrayList();
private System.Collections.SortedList fieldToReader = new System.Collections.SortedList();
private System.Collections.ArrayList storedFieldReaders = new System.Collections.ArrayList();
private int maxDoc;
private int numDocs;
private bool hasDeletions;
///