本文整理了Java中proj.zoie.api.ZoieSegmentReader.getDocIDMapper()
方法的一些代码示例,展示了ZoieSegmentReader.getDocIDMapper()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZoieSegmentReader.getDocIDMapper()
方法的具体详情如下:
包路径:proj.zoie.api.ZoieSegmentReader
类名称:ZoieSegmentReader
方法名:getDocIDMapper
暂无
代码示例来源:origin: senseidb/zoie
@Override
public DocIDMapper getDocIDMapper(final ZoieMultiReader<?> reader) throws IOException {
final ZoieSegmentReader<?>[] zoieSegmentReaders = reader.getSubReaders();
final DocIDMapper[] mappers = new DocIDMapper[zoieSegmentReaders.length];
for (int i = 0; i < zoieSegmentReaders.length; ++i) {
// reuse DocIDMapper since ZoieSegmentReader may be reused
if (zoieSegmentReaders[i].getDocIDMapper() != null) {
mappers[i] = zoieSegmentReaders[i].getDocIDMapper();
} else {
mappers[i] = getDocIDMapper(zoieSegmentReaders[i]);
zoieSegmentReaders[i].setDocIDMapper(mappers[i]);
}
}
return new DocIDMapper() {
@Override
public int getDocID(long uid) {
int docid;
for (int i = mappers.length - 1; i >= 0; --i) {
docid = mappers[i].getDocID(uid);
if (docid != DocIDMapper.NOT_FOUND) {
return docid + reader.getSubReaderBase(i);
}
}
return DocIDMapper.NOT_FOUND;
}
};
}
}
代码示例来源:origin: com.senseidb.zoie/zoie-core
@Override
public DocIDMapper getDocIDMapper(final ZoieMultiReader<?> reader) throws IOException {
final ZoieSegmentReader<?>[] zoieSegmentReaders = reader.getSubReaders();
final DocIDMapper[] mappers = new DocIDMapper[zoieSegmentReaders.length];
for (int i = 0; i < zoieSegmentReaders.length; ++i) {
// reuse DocIDMapper since ZoieSegmentReader may be reused
if (zoieSegmentReaders[i].getDocIDMapper() != null) {
mappers[i] = zoieSegmentReaders[i].getDocIDMapper();
} else {
mappers[i] = getDocIDMapper(zoieSegmentReaders[i]);
zoieSegmentReaders[i].setDocIDMapper(mappers[i]);
}
}
return new DocIDMapper() {
@Override
public int getDocID(long uid) {
int docid;
for (int i = mappers.length - 1; i >= 0; --i) {
docid = mappers[i].getDocID(uid);
if (docid != DocIDMapper.NOT_FOUND) {
return docid;
}
}
return DocIDMapper.NOT_FOUND;
}
};
}
}
代码示例来源:origin: senseidb/zoie
@Override
public DocIdSet getDocIdSet(AtomicReaderContext ctx, Bits acceptDocs) throws IOException {
SegmentReader reader = (SegmentReader) (ctx.reader());
int idx = -1;
for (int i = 0; i < _subZoieReaders.length; ++i) {
if (_subZoieReaders[i].getSegmentName().equals(reader.getSegmentName())) {
idx = i;
break;
}
}
if (idx == -1) {
throw new IOException("Can't find sub-reader");
}
return new UIDDocIdSet(_filteredIDs, _subZoieReaders[idx].getDocIDMapper());
}
}
代码示例来源:origin: com.senseidb/sensei-core
@Override
public IntArray getDocArray(BoboSegmentReader boboIndexReader) {
ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (boboIndexReader.getInnerReader());
DocIDMapperImpl docIDMapper = (DocIDMapperImpl) zoieReader.getDocIDMapper();
return new DefaultIntArray(docIDMapper.getDocArray());
}
代码示例来源:origin: com.senseidb.zoie/zoie-core
@Override
public DocIdSet getDocIdSet(AtomicReaderContext ctx, Bits acceptDocs) throws IOException {
SegmentReader reader = (SegmentReader) (ctx.reader());
int idx = -1;
for (int i = 0; i < _subZoieReaders.length; ++i) {
if (_subZoieReaders[i].getSegmentName().equals(reader.getSegmentName())) {
idx = i;
break;
}
}
if (idx == -1) {
throw new IOException("Can't find sub-reader");
}
return new UIDDocIdSet(_filteredIDs, _subZoieReaders[idx].getDocIDMapper());
}
}
代码示例来源:origin: com.senseidb/sensei-core
@Override
public RandomAccessDocIdSet getRandomAccessDocIdSet(BoboSegmentReader reader)
throws IOException {
ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (reader.getInnerReader());
DocIDMapper docidMapper = zoieReader.getDocIDMapper();
final int docid = docidMapper.getDocID(val);
if (docid == DocIDMapper.NOT_FOUND) {
return EmptyDocIdSet.getInstance();
}
return new SingleDocRandmAccessDocIdSet(docid);
}
};
代码示例来源:origin: com.senseidb/sensei-core
DocIDMapper mapper = zoieSegmentReader.getDocIDMapper();
if (mapper == null) return;
int docId = mapper.getDocID(uid);
代码示例来源:origin: com.senseidb/sensei-core
@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;
}
代码示例来源:origin: com.senseidb/sensei-core
@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;
}
}
代码示例来源:origin: com.senseidb/sensei-core
@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);
}
}
代码示例来源:origin: com.senseidb/sensei-core
throws IOException {
ZoieSegmentReader<?> zoieReader = (ZoieSegmentReader<?>) (reader.getInnerReader());
DocIDMapper docidMapper = zoieReader.getDocIDMapper();
内容来源于网络,如有侵权,请联系作者删除!