Example usage for org.apache.lucene.queryParser.surround.query BasicQueryFactory newSpanTermQuery

List of usage examples for org.apache.lucene.queryParser.surround.query BasicQueryFactory newSpanTermQuery

Introduction

In this page you can find the example usage for org.apache.lucene.queryParser.surround.query BasicQueryFactory newSpanTermQuery.

Prototype

public SpanTermQuery newSpanTermQuery(Term term) throws TooManyBasicQueries 

Source Link

Usage

From source file:it.intext.pattern.gindex.SpanSimpleTerm.java

License:Apache License

public Query makeLuceneQueryFieldNoBoost(final String fieldName, final BasicQueryFactory qf) {
    return new Query() {

        private static final long serialVersionUID = -5797231896662175334L;

        public String toString(String fn) {
            return getClass().toString() + " " + fieldName + " (" + fn + "?)";
        }/*from   w  w w .j a v  a2 s  . com*/

        public Query rewrite(IndexReader reader) throws IOException {
            final List<Query> luceneSubQueries = new ArrayList<Query>();
            visitMatchingTerms(reader, fieldName, new MatchingTermVisitor() {
                public void visitMatchingTerm(Term term) throws IOException {
                    luceneSubQueries.add(qf.newSpanTermQuery(term));
                }
            });
            return (luceneSubQueries.size() == 0) ? SrndQuery.theEmptyLcnQuery
                    : (luceneSubQueries.size() == 1) ? (Query) luceneSubQueries.get(0)
                            : makeBooleanQuery(
                                    /* luceneSubQueries all have default weight */
                                    luceneSubQueries, BooleanClause.Occur.SHOULD); /* OR the subquery terms */
        }
    };
}