MergeVisitor visitor = new MergeVisitor(mergeState, readerIndex); CompressingStoredFieldsReader matchingFieldsReader = null; if (matching.matchingReaders[readerIndex]) {
MergeVisitor visitor = new MergeVisitor(mergeState, readerIndex); CompressingStoredFieldsReader matchingFieldsReader = null; if (matching.matchingReaders[readerIndex]) {
MergeVisitor visitor = new MergeVisitor(mergeState, readerIndex); CompressingStoredFieldsReader matchingFieldsReader = null; if (matching.matchingReaders[readerIndex]) {
MergeVisitor visitor = new MergeVisitor(mergeState, readerIndex); CompressingStoredFieldsReader matchingFieldsReader = null; if (matching.matchingReaders[readerIndex]) {
/** Merges in the stored fields from the readers in * <code>mergeState</code>. The default implementation skips * over deleted documents, and uses {@link #startDocument()}, * {@link #writeField(FieldInfo, IndexableField)}, and {@link #finish(FieldInfos, int)}, * returning the number of documents that were written. * Implementations can override this method for more sophisticated * merging (bulk-byte copying, etc). */ public int merge(MergeState mergeState) throws IOException { int docCount = 0; for (int i=0;i<mergeState.storedFieldsReaders.length;i++) { StoredFieldsReader storedFieldsReader = mergeState.storedFieldsReaders[i]; storedFieldsReader.checkIntegrity(); MergeVisitor visitor = new MergeVisitor(mergeState, i); int maxDoc = mergeState.maxDocs[i]; Bits liveDocs = mergeState.liveDocs[i]; for (int docID=0;docID<maxDoc;docID++) { if (liveDocs != null && !liveDocs.get(docID)) { // skip deleted docs continue; } startDocument(); storedFieldsReader.visitDocument(docID, visitor); finishDocument(); docCount++; } } finish(mergeState.mergeFieldInfos, docCount); return docCount; }
/** Merges in the stored fields from the readers in * <code>mergeState</code>. The default implementation skips * over deleted documents, and uses {@link #startDocument()}, * {@link #writeField(FieldInfo, IndexableField)}, and {@link #finish(FieldInfos, int)}, * returning the number of documents that were written. * Implementations can override this method for more sophisticated * merging (bulk-byte copying, etc). */ public int merge(MergeState mergeState) throws IOException { int docCount = 0; for (int i=0;i<mergeState.storedFieldsReaders.length;i++) { StoredFieldsReader storedFieldsReader = mergeState.storedFieldsReaders[i]; storedFieldsReader.checkIntegrity(); MergeVisitor visitor = new MergeVisitor(mergeState, i); int maxDoc = mergeState.maxDocs[i]; Bits liveDocs = mergeState.liveDocs[i]; for (int docID=0;docID<maxDoc;docID++) { if (liveDocs != null && !liveDocs.get(docID)) { // skip deleted docs continue; } startDocument(); storedFieldsReader.visitDocument(docID, visitor); finishDocument(); docCount++; } } finish(mergeState.mergeFieldInfos, docCount); return docCount; }
StoredFieldsReader storedFieldsReader = mergeState.storedFieldsReaders[i]; storedFieldsReader.checkIntegrity(); subs.add(new StoredFieldsMergeSub(new MergeVisitor(mergeState, i), mergeState.docMaps[i], storedFieldsReader, mergeState.maxDocs[i]));