@Override public DocIDMapper getDocIDMapper(final ZoieSegmentReader<?> reader) throws IOException { // Don't use getLiveDocs of ZoieSegmentReader, since ZoieSegmentReader take into account // pending delete doc return new DocIDMapperImpl(reader.getUIDArray()); }
@Override public long[] load(BoboSegmentReader reader) throws IOException { IndexReader innerReader = reader.getInnerReader(); if (innerReader instanceof ZoieSegmentReader) { ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) innerReader; return zoieReader.getUIDArray(); } else { throw new IOException("inner reader not instance of " + ZoieSegmentReader.class); } }
@Override public DocIDMapper getDocIDMapper(final ZoieSegmentReader<?> reader) throws IOException { // Don't use getLiveDocs of ZoieSegmentReader, since ZoieSegmentReader take into account // pending delete doc return new DocIDMapperImpl(reader.getUIDArray()); }
private void handleSegment(ZoieSegmentReader segmentReader) { onDelete(segmentReader, segmentReader.getUIDArray()); }
private void handleSegment(ZoieSegmentReader<?> segmentReader) { onDelete(segmentReader, segmentReader.getUIDArray()); }
@Override public int[] load(BoboSegmentReader reader) throws IOException { ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (reader.getInnerReader()); long[] uidArray = zoieReader.getUIDArray(); return compositeActivityManager.getActivityValues().precomputeArrayIndexes(uidArray); }
@SuppressWarnings("unchecked") @Override public void finalizeSegment(BoboSegmentReader reader, FacetCountCollector[] facetCountCollectors) { if (docIdIndex > 0) { ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (reader.getInnerReader()); DocIDMapperImpl docIDMapper = (DocIDMapperImpl) zoieReader.getDocIDMapper(); Serializable mapResult = mapReduceStrategy.map(new DefaultIntArray(partialDocIds), docIdIndex, zoieReader.getUIDArray(), fieldAccessorFactory.getAccessor(facetInfos, reader, docIDMapper), new FacetCountAccessor(facetCountCollectors)); if (mapResult != null) { result.getMapResults().add(mapResult); } } docIdIndex = 0; }
@SuppressWarnings("unchecked") @Override public void mapFullIndexReader(BoboSegmentReader reader, FacetCountCollector[] facetCountCollectors) { ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (reader.getInnerReader()); DocIDMapperImpl docIDMapper = (DocIDMapperImpl) zoieReader.getDocIDMapper(); IntArray docArray = fieldAccessorFactory.getDocArray(reader); Serializable mapResult = mapReduceStrategy.map(docArray, docArray.size(), zoieReader.getUIDArray(), fieldAccessorFactory.getAccessor(facetInfos, reader, docIDMapper), new FacetCountAccessor(facetCountCollectors)); if (mapResult != null) { result.getMapResults().add(mapResult); } }
@SuppressWarnings("unchecked") @Override public final void mapSingleDocument(int docId, BoboSegmentReader reader) { if (docIdIndex < BUFFER_SIZE - 1) { partialDocIds[docIdIndex++] = docId; return; } if (docIdIndex == BUFFER_SIZE - 1) { partialDocIds[docIdIndex++] = docId; ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (reader.getInnerReader()); DocIDMapperImpl docIDMapper = (DocIDMapperImpl) zoieReader.getDocIDMapper(); Serializable mapResult = mapReduceStrategy .map(new DefaultIntArray(partialDocIds), BUFFER_SIZE, zoieReader.getUIDArray(), fieldAccessorFactory.getAccessor(facetInfos, reader, docIDMapper), FacetCountAccessor.EMPTY); if (mapResult != null) { result.getMapResults().add(mapResult); } docIdIndex = 0; } }
long[] subuidarray = subreaders[i].getUIDArray(); final int start = starts[i]; //start DOCID of this subreader final ZoieSegmentReader<?> subreader = subreaders[i]; if (mapper == null) mapper = new DocIDMapperImpl(subReader.getUIDArray());
public DocIDMapper<?> getDocIDMapper(ZoieMultiReader<?> multireader) { final ZoieSegmentReader<?>[] subreaders =(ZoieSegmentReader<?>[])(multireader.getSequentialSubReaders()); final int[] starts = multireader.getStarts(); for (int i = 0; i < subreaders.length; ++i){ ZoieSegmentReader<?> subReader = subreaders[i]; DocIDMapper<?> mapper = subReader.getDocIDMaper(); if (mapper == null){ mapper = new DocIDMapperImpl(subReader.getUIDArray()); } subReader.setDocIDMapper(mapper); } final DocIDMapper[] mappers = new DocIDMapper[subreaders.length]; for(int i=0; i< subreaders.length; i++) { mappers[i] = subreaders[i].getDocIDMaper(); } final int bound = subreaders.length-1; return new DefaultDocIDMapper(bound, mappers, starts); }