当前位置: 首页>>代码示例>>Java>>正文


Java StoredFieldsReader类代码示例

本文整理汇总了Java中org.apache.lucene.codecs.StoredFieldsReader的典型用法代码示例。如果您正苦于以下问题:Java StoredFieldsReader类的具体用法?Java StoredFieldsReader怎么用?Java StoredFieldsReader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


StoredFieldsReader类属于org.apache.lucene.codecs包,在下文中一共展示了StoredFieldsReader类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: merge

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public int merge(MergeState mergeState) throws IOException {
  int docCount = 0;
  // Used for bulk-reading raw bytes for stored fields
  int rawDocLengths[] = new int[MAX_RAW_MERGE_DOCS];
  int idx = 0;
  
  for (AtomicReader reader : mergeState.readers) {
    final SegmentReader matchingSegmentReader = mergeState.matchingSegmentReaders[idx++];
    Lucene40StoredFieldsReader matchingFieldsReader = null;
    if (matchingSegmentReader != null) {
      final StoredFieldsReader fieldsReader = matchingSegmentReader.getFieldsReader();
      // we can only bulk-copy if the matching reader is also a Lucene40FieldsReader
      if (fieldsReader != null && fieldsReader instanceof Lucene40StoredFieldsReader) {
        matchingFieldsReader = (Lucene40StoredFieldsReader) fieldsReader;
      }
    }
  
    if (reader.getLiveDocs() != null) {
      docCount += copyFieldsWithDeletions(mergeState,
                                          reader, matchingFieldsReader, rawDocLengths);
    } else {
      docCount += copyFieldsNoDeletions(mergeState,
                                        reader, matchingFieldsReader, rawDocLengths);
    }
  }
  finish(mergeState.fieldInfos, docCount);
  return docCount;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:30,代码来源:Lucene40StoredFieldsWriter.java

示例2: clone

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader clone() {
  if (in == null) {
    throw new AlreadyClosedException("this FieldsReader is closed");
  }
  return new SimpleTextStoredFieldsReader(offsets, in.clone(), fieldInfos);
}
 
开发者ID:europeana,项目名称:search,代码行数:8,代码来源:SimpleTextStoredFieldsReader.java

示例3: fieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si,
    FieldInfos fn, IOContext context) throws IOException {
  return new Lucene40StoredFieldsReader(directory, si, fn, context);
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:6,代码来源:Lucene40StoredFieldsFormat.java

示例4: clone

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader clone() {
  ensureOpen();
  return new CompressingStoredFieldsReader(this);
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:6,代码来源:CompressingStoredFieldsReader.java

示例5: merge

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public int merge(MergeState mergeState) throws IOException {
  int docCount = 0;
  int idx = 0;

  for (AtomicReader reader : mergeState.readers) {
    final SegmentReader matchingSegmentReader = mergeState.matchingSegmentReaders[idx++];
    CompressingStoredFieldsReader matchingFieldsReader = null;
    if (matchingSegmentReader != null) {
      final StoredFieldsReader fieldsReader = matchingSegmentReader.getFieldsReader();
      // we can only bulk-copy if the matching reader is also a CompressingStoredFieldsReader
      if (fieldsReader != null && fieldsReader instanceof CompressingStoredFieldsReader) {
        matchingFieldsReader = (CompressingStoredFieldsReader) fieldsReader;
      }
    }

    final int maxDoc = reader.maxDoc();
    final Bits liveDocs = reader.getLiveDocs();

    if (matchingFieldsReader == null
        || matchingFieldsReader.getVersion() != VERSION_CURRENT // means reader version is not the same as the writer version
        || matchingFieldsReader.getCompressionMode() != compressionMode
        || matchingFieldsReader.getChunkSize() != chunkSize) { // the way data is decompressed depends on the chunk size
      // naive merge...
      for (int i = nextLiveDoc(0, liveDocs, maxDoc); i < maxDoc; i = nextLiveDoc(i + 1, liveDocs, maxDoc)) {
        Document doc = reader.document(i);
        addDocument(doc, mergeState.fieldInfos);
        ++docCount;
        mergeState.checkAbort.work(300);
      }
    } else {
      int docID = nextLiveDoc(0, liveDocs, maxDoc);
      if (docID < maxDoc) {
        // not all docs were deleted
        final ChunkIterator it = matchingFieldsReader.chunkIterator(docID);
        int[] startOffsets = new int[0];
        do {
          // go to the next chunk that contains docID
          it.next(docID);
          // transform lengths into offsets
          if (startOffsets.length < it.chunkDocs) {
            startOffsets = new int[ArrayUtil.oversize(it.chunkDocs, 4)];
          }
          for (int i = 1; i < it.chunkDocs; ++i) {
            startOffsets[i] = startOffsets[i - 1] + it.lengths[i - 1];
          }

          // decompress
          it.decompress();
          if (startOffsets[it.chunkDocs - 1] + it.lengths[it.chunkDocs - 1] != it.bytes.length) {
            throw new CorruptIndexException("Corrupted: expected chunk size=" + startOffsets[it.chunkDocs - 1] + it.lengths[it.chunkDocs - 1] + ", got " + it.bytes.length);
          }
          // copy non-deleted docs
          for (; docID < it.docBase + it.chunkDocs; docID = nextLiveDoc(docID + 1, liveDocs, maxDoc)) {
            final int diff = docID - it.docBase;
            startDocument();
            bufferedDocs.writeBytes(it.bytes.bytes, it.bytes.offset + startOffsets[diff], it.lengths[diff]);
            numStoredFieldsInDoc = it.numStoredFields[diff];
            finishDocument();
            ++docCount;
            mergeState.checkAbort.work(300);
          }
        } while (docID < maxDoc);

        it.checkIntegrity();
      }
    }
  }
  finish(mergeState.fieldInfos, docCount);
  return docCount;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:72,代码来源:CompressingStoredFieldsWriter.java

示例6: fieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si,
    FieldInfos fn, IOContext context) throws IOException {
  return new CompressingStoredFieldsReader(directory, si, segmentSuffix, fn, 
      context, formatName, compressionMode);
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:7,代码来源:CompressingStoredFieldsFormat.java

示例7: fieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si,
    FieldInfos fn, IOContext context) throws IOException {
  return new Lucene3xStoredFieldsReader(directory, si, fn, context);
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:6,代码来源:Lucene3xStoredFieldsFormat.java

示例8: getFieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
/** Expert: retrieve thread-private {@link
 *  StoredFieldsReader}
 *  @lucene.internal */
public StoredFieldsReader getFieldsReader() {
  ensureOpen();
  return core.fieldsReaderLocal.get();
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:8,代码来源:SegmentReader.java

示例9: initialValue

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
protected StoredFieldsReader initialValue() {
  return fieldsReaderOrig.clone();
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:5,代码来源:SegmentCoreReaders.java

示例10: fieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException {;
  return new SimpleTextStoredFieldsReader(directory, si, fn, context);
}
 
开发者ID:europeana,项目名称:search,代码行数:5,代码来源:SimpleTextStoredFieldsFormat.java

示例11: fieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException {
  return new AssertingStoredFieldsReader(in.fieldsReader(directory, si, fn, context), si.getDocCount());
}
 
开发者ID:europeana,项目名称:search,代码行数:5,代码来源:AssertingStoredFieldsFormat.java

示例12: AssertingStoredFieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
AssertingStoredFieldsReader(StoredFieldsReader in, int maxDoc) {
  this.in = in;
  this.maxDoc = maxDoc;
}
 
开发者ID:europeana,项目名称:search,代码行数:5,代码来源:AssertingStoredFieldsFormat.java

示例13: clone

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader clone() {
  return new AssertingStoredFieldsReader(in.clone(), maxDoc);
}
 
开发者ID:europeana,项目名称:search,代码行数:5,代码来源:AssertingStoredFieldsFormat.java

示例14: fieldsReader

import org.apache.lucene.codecs.StoredFieldsReader; //导入依赖的package包/类
@Override
public StoredFieldsReader fieldsReader(Directory directory, SegmentInfo si, FieldInfos fn, IOContext context) throws IOException {
  return delegate.fieldsReader(directory, si, fn, context);
}
 
开发者ID:europeana,项目名称:search,代码行数:5,代码来源:CrankyStoredFieldsFormat.java


注:本文中的org.apache.lucene.codecs.StoredFieldsReader类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。