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));
}