Example usage for org.apache.lucene.analysis.reverse ReverseStringFilter reverse

List of usage examples for org.apache.lucene.analysis.reverse ReverseStringFilter reverse

Introduction

In this page you can find the example usage for org.apache.lucene.analysis.reverse ReverseStringFilter reverse.

Prototype

public static void reverse(final char[] buffer) 

Source Link

Document

Reverses the given input buffer in-place

Usage

From source file:org.apache.solr.search.SolrComplexPhraseQueryParser.java

License:Apache License

protected Query getWildcardQuery(String field, String termStr) throws ParseException {
    // *:* -> MatchAllDocsQuery
    if ("*".equals(field) && "*".equals(termStr)) {
        return newMatchAllDocsQuery();
    }/*from  w  w w.  j ava 2s  .  co  m*/

    // can we use reversed wildcards in this field?
    String type = schema.getFieldType(field).getTypeName();
    ReversedWildcardFilterFactory factory = leadingWildcards.get(type);
    if (factory != null && factory.shouldReverse(termStr)) {
        termStr = ReverseStringFilter.reverse(termStr + factory.getMarkerChar());
    }
    Query q = super.getWildcardQuery(field, termStr);
    if (q instanceof WildcardQuery) {
        // use a constant score query to avoid overflowing clauses
        WildcardQuery wildcardQuery = new WildcardQuery(((WildcardQuery) q).getTerm());
        wildcardQuery.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE);
        return wildcardQuery;
    }
    return q;
}