Example usage for org.apache.lucene.search.spans SpanMultiTermQueryWrapper SCORING_SPAN_QUERY_REWRITE

List of usage examples for org.apache.lucene.search.spans SpanMultiTermQueryWrapper SCORING_SPAN_QUERY_REWRITE

Introduction

In this page you can find the example usage for org.apache.lucene.search.spans SpanMultiTermQueryWrapper SCORING_SPAN_QUERY_REWRITE.

Prototype

SpanRewriteMethod SCORING_SPAN_QUERY_REWRITE

To view the source code for org.apache.lucene.search.spans SpanMultiTermQueryWrapper SCORING_SPAN_QUERY_REWRITE.

Click Source Link

Document

A rewrite method that first translates each term into a SpanTermQuery in a Occur#SHOULD clause in a BooleanQuery, and keeps the scores as computed by the query.

Usage

From source file:org.LexGrid.LexBIG.Impl.Extensions.Search.query.SpanWildcardQuery.java

License:Open Source License

public Query rewrite(IndexReader reader) throws IOException {
    WildcardQuery orig = new WildcardQuery(term);
    orig.setRewriteMethod(SpanMultiTermQueryWrapper.SCORING_SPAN_QUERY_REWRITE);

    Query rewritten = orig.rewrite(reader);
    SpanQuery[] spanQueries = null;/*  w  w w  .  ja v  a  2 s.  co m*/
    SpanOrQuery termQuery = null;
    if (rewritten instanceof BooleanQuery) {
        BooleanQuery booleanQuery = (BooleanQuery) rewritten;
        List<BooleanClause> clauses = booleanQuery.clauses();
        spanQueries = new SpanQuery[clauses.size()];
        for (int i = 0; i < clauses.size(); i++) {

            BooleanClause clause = clauses.get(i);
            // Clauses from RegexQuery.rewrite are always TermQuery's
            TermQuery tq = (TermQuery) clause.getQuery();
            spanQueries[i] = new SpanTermQuery(tq.getTerm());
            spanQueries[i].setBoost(tq.getBoost());

        }
        return new SpanOrQuery(spanQueries);
    } else {
        termQuery = (SpanOrQuery) rewritten;
    }
    ;
    termQuery.setBoost(orig.getBoost());

    return termQuery;
}