Java源码示例:org.apache.lucene.queries.TermsFilter

示例1
@Override
public Filter makeFilter(SpatialArgs args) {
  final SpatialOperation op = args.getOperation();
  if (op != SpatialOperation.Intersects)
    throw new UnsupportedSpatialOperation(op);

  Shape shape = args.getShape();
  int detailLevel = grid.getLevelForDistance(args.resolveDistErr(ctx, distErrPct));
  List<Cell> cells = grid.getCells(shape, detailLevel, false,// no parents
      true);// simplify
  BytesRef[] terms = new BytesRef[cells.size()];
  int i = 0;
  for (Cell cell : cells) {
    terms[i++] = new BytesRef(cell.getTokenString());
  }
  return new TermsFilter(getFieldName(), terms);
}
 
示例2
@Override
public Query bestMatchingSuggestion(DocumentBuilder builder, Analyzer analyzer, UUID user, LanguageDirection direction, Sentence sentence, ContextVector context) {
    int length = sentence.getWords().length;
    int minMatches = length > SHORT_QUERY_SIZE ? Math.max(1, (int) (length * .5)) : length;

    // Content query
    BooleanQuery termsQuery = makeTermsQuery(builder, direction, sentence, analyzer);
    termsQuery.setMinimumNumberShouldMatch(minMatches);

    // Context filter
    TermsFilter contextFilter = makeContextFilter(builder, context);

    // Result
    return new FilteredQuery(termsQuery, contextFilter);
}
 
示例3
protected static TermsFilter makeContextFilter(DocumentBuilder builder, ContextVector context) {
    ArrayList<Term> terms = new ArrayList<>(context.size());
    for (ContextVector.Entry entry : context)
        terms.add(builder.makeMemoryTerm(entry.memory.getId()));
    return new TermsFilter(terms);
}
 
示例4
@Override
@SuppressWarnings("unchecked")
Filter makeFilter(String fname, Iterator<BytesRef> it) {
  return new TermsFilter(fname, IteratorUtils.toList(it));
}