List of usage examples for org.apache.lucene.search MultiPhraseQuery rewrite
@Override
public Query rewrite(IndexReader reader) throws IOException
From source file:org.elasticsearch.common.lucene.search.MultiPhrasePrefixQuery.java
License:Apache License
@Override public Query rewrite(IndexReader reader) throws IOException { if (termArrays.isEmpty()) { return new MatchNoDocsQuery(); }/*from ww w. j a va 2 s .co m*/ MultiPhraseQuery query = new MultiPhraseQuery(); query.setSlop(slop); int sizeMinus1 = termArrays.size() - 1; for (int i = 0; i < sizeMinus1; i++) { query.add(termArrays.get(i), positions.get(i)); } Term[] suffixTerms = termArrays.get(sizeMinus1); int position = positions.get(sizeMinus1); ObjectOpenHashSet<Term> terms = new ObjectOpenHashSet<Term>(); for (Term term : suffixTerms) { getPrefixTerms(terms, term, reader); if (terms.size() > maxExpansions) { break; } } if (terms.isEmpty()) { return Queries.newMatchNoDocsQuery(); } query.add(terms.toArray(Term.class), position); return query.rewrite(reader); }