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


Java TermState类代码示例

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


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

示例1: seekExact

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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);
    // }
  }
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:21,代码来源:SegmentTermsEnum.java

示例2: UnionDocsAndPositionsEnum

import org.apache.lucene.index.TermState; //导入依赖的package包/类
public UnionDocsAndPositionsEnum(Bits liveDocs, AtomicReaderContext context, Term[] terms, Map<Term,TermContext> termContexts, TermsEnum termsEnum) throws IOException {
  List<DocsAndPositionsEnum> docsEnums = new LinkedList<>();
  for (int i = 0; i < terms.length; i++) {
    final Term term = terms[i];
    TermState termState = termContexts.get(term).get(context.ord);
    if (termState == null) {
      // Term doesn't exist in reader
      continue;
    }
    termsEnum.seekExact(term.bytes(), termState);
    DocsAndPositionsEnum postings = termsEnum.docsAndPositions(liveDocs, null, DocsEnum.FLAG_NONE);
    if (postings == null) {
      // term does exist, but has no positions
      throw new IllegalStateException("field \"" + term.field() + "\" was indexed without position data; cannot run PhraseQuery (term=" + term.text() + ")");
    }
    cost += postings.cost();
    docsEnums.add(postings);
  }

  _queue = new DocsQueue(docsEnums);
  _posList = new IntQueue();
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:23,代码来源:MultiPhraseQuery.java

示例3: adjustTTF

import org.apache.lucene.index.TermState; //导入依赖的package包/类
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;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:26,代码来源:BlendedTermQuery.java

示例4: seekExact

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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;
}
 
开发者ID:europeana,项目名称:search,代码行数:24,代码来源:OrdsSegmentTermsEnum.java

示例5: copyFrom

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@Override
public void copyFrom(TermState _other) {
  super.copyFrom(_other);
  PulsingTermState other = (PulsingTermState) _other;
  postingsSize = other.postingsSize;
  if (other.postingsSize != -1) {
    if (postings == null || postings.length < other.postingsSize) {
      postings = new byte[ArrayUtil.oversize(other.postingsSize, 1)];
    }
    System.arraycopy(other.postings, 0, postings, 0, other.postingsSize);
  } else {
    wrappedTermState.copyFrom(other.wrappedTermState);
  }

  // NOTE: we do not copy the
  // inlinedBytes/inlinedBytesReader; these are only
  // stored on the "primary" TermState.  They are
  // "transient" to cloned term states.
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:20,代码来源:PulsingPostingsReader.java

示例6: seekExact

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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);
    // }
  }
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:21,代码来源:BlockTreeTermsReader.java

示例7: copyFrom

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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;

  // Do not copy bytes, bytesReader (else TermState is
  // very heavy, ie drags around the entire block's
  // byte[]).  On seek back, if next() is in fact used
  // (rare!), they will be re-read from disk.
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:17,代码来源:Lucene41PostingsReader.java

示例8: UnionDocsAndPositionsEnum

import org.apache.lucene.index.TermState; //导入依赖的package包/类
public UnionDocsAndPositionsEnum(Bits liveDocs, AtomicReaderContext context, Term[] terms, Map<Term,TermContext> termContexts, TermsEnum termsEnum) throws IOException {
  List<DocsAndPositionsEnum> docsEnums = new LinkedList<DocsAndPositionsEnum>();
  for (int i = 0; i < terms.length; i++) {
    final Term term = terms[i];
    TermState termState = termContexts.get(term).get(context.ord);
    if (termState == null) {
      // Term doesn't exist in reader
      continue;
    }
    termsEnum.seekExact(term.bytes(), termState);
    DocsAndPositionsEnum postings = termsEnum.docsAndPositions(liveDocs, null, DocsEnum.FLAG_NONE);
    if (postings == null) {
      // term does exist, but has no positions
      throw new IllegalStateException("field \"" + term.field() + "\" was indexed without position data; cannot run PhraseQuery (term=" + term.text() + ")");
    }
    docsEnums.add(postings);
  }

  _queue = new DocsQueue(docsEnums);
  _posList = new IntQueue();
}
 
开发者ID:pkarmstr,项目名称:NYBC,代码行数:22,代码来源:MultiPhraseQuery.java

示例9: UnionDocsAndPositionsEnum

import org.apache.lucene.index.TermState; //导入依赖的package包/类
public UnionDocsAndPositionsEnum(Bits liveDocs, AtomicReaderContext context, Term[] terms, Map<Term,TermContext> termContexts, TermsEnum termsEnum) throws IOException {
  List<DocsAndPositionsEnum> docsEnums = new LinkedList<DocsAndPositionsEnum>();
  for (int i = 0; i < terms.length; i++) {
    final Term term = terms[i];
    TermState termState = termContexts.get(term).get(context.ord);
    if (termState == null) {
      // Term doesn't exist in reader
      continue;
    }
    termsEnum.seekExact(term.bytes(), termState);
    DocsAndPositionsEnum postings = termsEnum.docsAndPositions(liveDocs, null, DocsEnum.FLAG_NONE);
    if (postings == null) {
      // term does exist, but has no positions
      throw new IllegalStateException("field \"" + term.field() + "\" was indexed without position data; cannot run PhraseQuery (term=" + term.text() + ")");
    }
    cost += postings.cost();
    docsEnums.add(postings);
  }

  _queue = new DocsQueue(docsEnums);
  _posList = new IntQueue();
}
 
开发者ID:yintaoxue,项目名称:read-open-source-code,代码行数:23,代码来源:MultiPhraseQuery.java

示例10: copyFrom

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@Override
public void copyFrom(TermState _other) {
  super.copyFrom(_other);
  StandardTermState other = (StandardTermState) _other;
  freqOffset = other.freqOffset;
  proxOffset = other.proxOffset;
  skipOffset = other.skipOffset;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:9,代码来源:Lucene40PostingsReader.java

示例11: termState

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:9,代码来源:SegmentTermsEnum.java

示例12: copyFrom

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:11,代码来源:BlockTermState.java

示例13: copyFrom

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@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;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:12,代码来源:Lucene41PostingsWriter.java

示例14: adjustDF

import org.apache.lucene.index.TermState; //导入依赖的package包/类
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;
}
 
开发者ID:baidu,项目名称:Elasticsearch,代码行数:28,代码来源:BlendedTermQuery.java

示例15: seekExact

import org.apache.lucene.index.TermState; //导入依赖的package包/类
@Override
public void seekExact(BytesRef target, TermState otherState) {
  if (!target.equals(term)) {
    state.copyFrom(otherState);
    term = BytesRef.deepCopyOf(target);
    seekPending = true;
  }
}
 
开发者ID:europeana,项目名称:search,代码行数:9,代码来源:FSTTermsReader.java


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