类org.apache.lucene.index.TermState源码实例Demo

下面列出了怎么用org.apache.lucene.index.TermState的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: Elasticsearch   文件: BlendedTermQuery.java
private TermContext adjustTTF(TermContext termContext, long sumTTF) {
    if (sumTTF == -1 && termContext.totalTermFreq() == -1) {
        return termContext;
    }
    TermContext newTermContext = new TermContext(termContext.topReaderContext);
    List<LeafReaderContext> leaves = termContext.topReaderContext.leaves();
    final int len;
    if (leaves == null) {
        len = 1;
    } else {
        len = leaves.size();
    }
    int df = termContext.docFreq();
    long ttf = sumTTF;
    for (int i = 0; i < len; i++) {
        TermState termState = termContext.get(i);
        if (termState == null) {
            continue;
        }
        newTermContext.register(termState, i, df, ttf);
        df = 0;
        ttf = 0;
    }
    return newTermContext;
}
 
源代码2 项目: lucene-solr   文件: OrdsSegmentTermsEnum.java
@Override
public void seekExact(BytesRef target, TermState otherState) {
  // if (DEBUG) {
  //   System.out.println("BTTR.seekExact termState seg=" + segment + " target=" + target.utf8ToString() + " " + target + " state=" + otherState);
  // }
  assert clearEOF();
  if (target.compareTo(term.get()) != 0 || !termExists) {
    assert otherState != null && otherState instanceof BlockTermState;
    BlockTermState blockState = (BlockTermState) otherState;
    currentFrame = staticFrame;
    currentFrame.state.copyFrom(otherState);
    term.copyBytes(target);
    currentFrame.metaDataUpto = currentFrame.getTermBlockOrd();
    currentFrame.termOrd = blockState.ord+1;
    assert currentFrame.metaDataUpto > 0;
    validIndexPrefix = 0;
  } else {
    // if (DEBUG) {
    //   System.out.println("  skip seek: already on target state=" + currentFrame.state);
    // }
  }
  positioned = true;
}
 
源代码3 项目: lucene-solr   文件: IDVersionSegmentTermsEnum.java
@Override
public void seekExact(BytesRef target, TermState otherState) {
  // if (DEBUG) {
  //   System.out.println("BTTR.seekExact termState seg=" + segment + " target=" + target.utf8ToString() + " " + target + " state=" + otherState);
  // }
  assert clearEOF();
  if (target.compareTo(term.get()) != 0 || !termExists) {
    assert otherState != null && otherState instanceof BlockTermState;
    currentFrame = staticFrame;
    currentFrame.state.copyFrom(otherState);
    term.copyBytes(target);
    currentFrame.metaDataUpto = currentFrame.getTermBlockOrd();
    assert currentFrame.metaDataUpto > 0;
    validIndexPrefix = 0;
  } else {
    // if (DEBUG) {
    //   System.out.println("  skip seek: already on target state=" + currentFrame.state);
    // }
  }
}
 
源代码4 项目: lucene-solr   文件: SegmentTermsEnum.java
@Override
public void seekExact(BytesRef target, TermState otherState) {
  // if (DEBUG) {
  //   System.out.println("BTTR.seekExact termState seg=" + segment + " target=" + target.utf8ToString() + " " + target + " state=" + otherState);
  // }
  assert clearEOF();
  if (target.compareTo(term.get()) != 0 || !termExists) {
    assert otherState != null && otherState instanceof BlockTermState;
    currentFrame = staticFrame;
    currentFrame.state.copyFrom(otherState);
    term.copyBytes(target);
    currentFrame.metaDataUpto = currentFrame.getTermBlockOrd();
    assert currentFrame.metaDataUpto > 0;
    validIndexPrefix = 0;
  } else {
    // if (DEBUG) {
    //   System.out.println("  skip seek: already on target state=" + currentFrame.state);
    // }
  }
}
 
源代码5 项目: lucene-solr   文件: BlendedTermQuery.java
private static TermStates adjustFrequencies(IndexReaderContext readerContext,
                                            TermStates ctx, int artificialDf, long artificialTtf) throws IOException {
  List<LeafReaderContext> leaves = readerContext.leaves();
  final int len;
  if (leaves == null) {
    len = 1;
  } else {
    len = leaves.size();
  }
  TermStates newCtx = new TermStates(readerContext);
  for (int i = 0; i < len; ++i) {
    TermState termState = ctx.get(leaves.get(i));
    if (termState == null) {
      continue;
    }
    newCtx.register(termState, i);
  }
  newCtx.accumulateStatistics(artificialDf, artificialTtf);
  return newCtx;
}
 
源代码6 项目: lucene-solr   文件: SolrRangeQuery.java
/** Try to collect terms from the given terms enum and return count=sum(df) for terms visited so far
 *  or (-count - 1) if this should be rewritten into a boolean query.
 *  The termEnum will already be positioned on the next term if not exhausted.
 */
private long collectTerms(LeafReaderContext context, TermsEnum termsEnum, List<TermAndState> terms) throws IOException {
  long count = 0;
  final int threshold = Math.min(BOOLEAN_REWRITE_TERM_COUNT_THRESHOLD, IndexSearcher.getMaxClauseCount());
  for (int i = 0; i < threshold; ++i) {
    final BytesRef term = termsEnum.next();
    if (term == null) {
      return -count - 1;
    }
    TermState state = termsEnum.termState();
    int df = termsEnum.docFreq();
    count += df;
    terms.add(new TermAndState(BytesRef.deepCopyOf(term), state, df, termsEnum.totalTermFreq()));
  }
  return termsEnum.next() == null ? (-count - 1) : count;
}
 
@Override
public void seekExact(BytesRef target, TermState otherState) {
  // if (DEBUG) {
  //   System.out.println("BTTR.seekExact termState seg=" + segment + " target=" + target.utf8ToString() + " " + target + " state=" + otherState);
  // }
  assert clearEOF();
  if (target.compareTo(term) != 0 || !termExists) {
    assert otherState != null && otherState instanceof BlockTermState;
    currentFrame = staticFrame;
    currentFrame.state.copyFrom(otherState);
    term.copyBytes(target);
    currentFrame.metaDataUpto = currentFrame.getTermBlockOrd();
    assert currentFrame.metaDataUpto > 0;
    validIndexPrefix = 0;
  } else {
    // if (DEBUG) {
    //   System.out.println("  skip seek: already on target state=" + currentFrame.state);
    // }
  }
}
 
源代码8 项目: Elasticsearch   文件: BlendedTermQuery.java
private static TermContext adjustDF(TermContext ctx, int newDocFreq) {
    // Use a value of ttf that is consistent with the doc freq (ie. gte)
    long newTTF;
    if (ctx.totalTermFreq() < 0) {
        newTTF = -1;
    } else {
        newTTF = Math.max(ctx.totalTermFreq(), newDocFreq);
    }
    List<LeafReaderContext> leaves = ctx.topReaderContext.leaves();
    final int len;
    if (leaves == null) {
        len = 1;
    } else {
        len = leaves.size();
    }
    TermContext newCtx = new TermContext(ctx.topReaderContext);
    for (int i = 0; i < len; ++i) {
        TermState termState = ctx.get(i);
        if (termState == null) {
            continue;
        }
        newCtx.register(termState, i, newDocFreq, newTTF);
        newDocFreq = 0;
        newTTF = 0;
    }
    return newCtx;
}
 
源代码9 项目: lucene-solr   文件: FSTTermsReader.java
@Override
public void seekExact(BytesRef target, TermState otherState) {
  if (!target.equals(term)) {
    state.copyFrom(otherState);
    term = BytesRef.deepCopyOf(target);
    seekPending = true;
  }
}
 
源代码10 项目: lucene-solr   文件: OrdsSegmentTermsEnum.java
@Override
public TermState termState() throws IOException {
  assert !eof;
  currentFrame.decodeMetaData();
  BlockTermState ts = (BlockTermState) currentFrame.state.clone();
  assert currentFrame.termOrd > 0;
  ts.ord = currentFrame.termOrd-1;
  //if (DEBUG) System.out.println("BTTR.termState seg=" + segment + " state=" + ts);
  return ts;
}
 
源代码11 项目: lucene-solr   文件: BlockTermsReader.java
@Override
public void seekExact(BytesRef target, TermState otherState) {
  //System.out.println("BTR.seekExact termState target=" + target.utf8ToString() + " " + target + " this=" + this);
  assert otherState != null && otherState instanceof BlockTermState;
  assert !doOrd || ((BlockTermState) otherState).ord < numTerms;
  state.copyFrom(otherState);
  seekPending = true;
  indexIsCurrent = false;
  term.copyBytes(target);
}
 
源代码12 项目: lucene-solr   文件: BlockTermsReader.java
@Override
public TermState termState() throws IOException {
  //System.out.println("BTR.termState this=" + this);
  decodeMetaData();
  TermState ts = state.clone();
  //System.out.println("  return ts=" + ts);
  return ts;
}
 
源代码13 项目: lucene-solr   文件: IDVersionSegmentTermsEnum.java
@Override
public TermState termState() throws IOException {
  assert !eof;
  currentFrame.decodeMetaData();
  TermState ts = currentFrame.state.clone();
  //if (DEBUG) System.out.println("BTTR.termState seg=" + segment + " state=" + ts);
  return ts;
}
 
源代码14 项目: lucene-solr   文件: IDVersionTermState.java
@Override
public void copyFrom(TermState _other) {
  super.copyFrom(_other);
  IDVersionTermState other = (IDVersionTermState) _other;
  idVersion = other.idVersion;
  docID = other.docID;
}
 
源代码15 项目: lucene-solr   文件: SegmentTermsEnum.java
@Override
public TermState termState() throws IOException {
  assert !eof;
  currentFrame.decodeMetaData();
  TermState ts = currentFrame.state.clone();
  //if (DEBUG) System.out.println("BTTR.termState seg=" + segment + " state=" + ts);
  return ts;
}
 
源代码16 项目: lucene-solr   文件: BlockTermState.java
@Override
public void copyFrom(TermState _other) {
  assert _other instanceof BlockTermState : "can not copy from " + _other.getClass().getName();
  BlockTermState other = (BlockTermState) _other;
  super.copyFrom(_other);
  docFreq = other.docFreq;
  totalTermFreq = other.totalTermFreq;
  termBlockOrd = other.termBlockOrd;
  blockFilePointer = other.blockFilePointer;
}
 
源代码17 项目: lucene-solr   文件: Lucene84PostingsFormat.java
@Override
public void copyFrom(TermState _other) {
  super.copyFrom(_other);
  IntBlockTermState other = (IntBlockTermState) _other;
  docStartFP = other.docStartFP;
  posStartFP = other.posStartFP;
  payStartFP = other.payStartFP;
  lastPosBlockOffset = other.lastPosBlockOffset;
  skipOffset = other.skipOffset;
  singletonDocID = other.singletonDocID;
}
 
源代码18 项目: lucene-solr   文件: Lucene50PostingsFormat.java
@Override
public void copyFrom(TermState _other) {
  super.copyFrom(_other);
  IntBlockTermState other = (IntBlockTermState) _other;
  docStartFP = other.docStartFP;
  posStartFP = other.posStartFP;
  payStartFP = other.payStartFP;
  lastPosBlockOffset = other.lastPosBlockOffset;
  skipOffset = other.skipOffset;
  singletonDocID = other.singletonDocID;
}
 
@Override
public TermState termState() throws IOException {
  assert !eof;
  currentFrame.decodeMetaData();
  TermState ts = currentFrame.state.clone();
  //if (DEBUG) System.out.println("BTTR.termState seg=" + segment + " state=" + ts);
  return ts;
}
 
@Override
public void seekExact(BytesRef term, TermState state) throws IOException {
    delegate.seekExact(term, state);
}
 
@Override
public TermState termState() throws IOException {
    return delegate.termState();
}
 
源代码22 项目: lucene-solr   文件: FSTTermsReader.java
@Override
public TermState termState() throws IOException {
  decodeMetaData();
  return state.clone();
}
 
源代码23 项目: lucene-solr   文件: DirectPostingsFormat.java
@Override
public TermState termState() {
  OrdTermState state = new OrdTermState();
  state.ord = termOrd;
  return state;
}
 
源代码24 项目: lucene-solr   文件: DirectPostingsFormat.java
@Override
public void seekExact(BytesRef term, TermState state) throws IOException {
  termOrd = (int) ((OrdTermState) state).ord;
  setTerm();
  assert term.equals(scratch);
}
 
源代码25 项目: lucene-solr   文件: DirectPostingsFormat.java
@Override
public TermState termState() {
  OrdTermState state = new OrdTermState();
  state.ord = termOrd;
  return state;
}
 
源代码26 项目: lucene-solr   文件: OrdsIntersectTermsEnum.java
@Override
public TermState termState() throws IOException {
  currentFrame.decodeMetaData();
  return currentFrame.termState.clone();
}
 
源代码27 项目: lucene-solr   文件: DeltaBaseTermStateSerializer.java
/**
 * @return The estimated RAM usage of the given {@link TermState}.
 */
public static long ramBytesUsed(TermState termState) {
  return termState instanceof IntBlockTermState ?
      INT_BLOCK_TERM_STATE_RAM_USAGE
      : RamUsageEstimator.shallowSizeOf(termState);
}
 
源代码28 项目: lucene-solr   文件: IntersectBlockReader.java
@Override
public void seekExact(BytesRef term, TermState state) {
  throw new UnsupportedOperationException();
}
 
源代码29 项目: lucene-solr   文件: RamUsageUtil.java
public static long ramBytesUsed(TermState termState) {
  return DeltaBaseTermStateSerializer.ramBytesUsed(termState);
}
 
源代码30 项目: lucene-solr   文件: BlockReader.java
@Override
public TermState termState() throws IOException {
  readTermStateIfNotRead();
  return termState.clone();
}
 
 类所在包
 同包方法