Example usage for org.apache.solr.search.function ValueSourceRangeFilter ValueSourceRangeFilter

List of usage examples for org.apache.solr.search.function ValueSourceRangeFilter ValueSourceRangeFilter

Introduction

In this page you can find the example usage for org.apache.solr.search.function ValueSourceRangeFilter ValueSourceRangeFilter.

Prototype

public ValueSourceRangeFilter(ValueSource valueSource, String lowerVal, String upperVal, boolean includeLower,
            boolean includeUpper) 

Source Link

Usage

From source file:com.indoqa.solr.spatial.corridor.query.route.RouteQueryParser.java

License:Apache License

@Override
public Query parse() throws SyntaxError {
    ValueSource locationValueSource = this.parseLocationValueSource();

    LineString lineString = this.parseLineString();
    String buffer = this.parseBuffer();

    RouteDistanceValueSource corridorDistanceValueSource = new RouteDistanceValueSource(lineString,
            locationValueSource);//w  w  w  . j  a v a  2 s.c  om
    ValueSourceRangeFilter filter = new ValueSourceRangeFilter(corridorDistanceValueSource, "0", buffer, true,
            true);
    return new FunctionRangeQuery(filter);
}

From source file:org.vootoo.search.CollectorFilterablePlugin.java

License:Apache License

/**
 * @param rangeValue//  www  .  j a  v a2s.c  o  m
 *          [|(v1 TO v2)|]
 *
 * @throws SyntaxError if format error
 */
public static ValueSourceRangeFilter parseRange(ValueSource vs, String rangeValue) throws SyntaxError {
    boolean includeLower = true;
    boolean includeUpper = true;

    if (rangeValue == null) {
        throw new SyntaxError("range query format error, rangeValue is null");
    }

    rangeValue = rangeValue.trim();

    // "[ TO ]".length
    if (rangeValue.length() < 6) {
        throw new SyntaxError("range query format error, rangeValue=" + rangeValue);
    }
    char ch = rangeValue.charAt(0);
    if (ch == '(') {
        includeLower = false;
    } else {
        if (ch != '[') {
            throw new SyntaxError("range query lower char must be '(' or '[', rangeValue=" + rangeValue);
        }
    }

    ch = rangeValue.charAt(rangeValue.length() - 1);
    if (ch == ')') {
        includeUpper = false;
    } else {
        if (ch != ']') {
            throw new SyntaxError("range query upper char must be ')' or ']', rangeValue=" + rangeValue);
        }
    }

    String l = null;
    String u = null;

    String[] values = rangeValue.substring(1, rangeValue.length() - 1).split("\\ TO\\ ");
    if (values == null || values.length < 2) {
        throw new SyntaxError("range query format error, rangeValue=" + rangeValue);
    }
    values[0] = values[0].trim();
    values[1] = values[1].trim();
    if (values[0].length() > 0 && !values[0].equals("*")) {
        l = values[0];
    }
    if (values[1].length() > 0 && !values[1].equals("*")) {
        u = values[1];
    }

    return new ValueSourceRangeFilter(vs, l, u, includeLower, includeUpper);
}

From source file:org.vootoo.search.function.filter.RangeCollectorFilterablePlugin.java

License:Apache License

@Override
public CollectorFilterable createCollectorFilterable(String qstr, SolrParams localParams, SolrParams params,
        SolrQueryRequest req, ValueSource valueSource, String valueStr) throws SyntaxError {

    ValueSourceRangeFilter rf = null;//from  w w  w .ja  va  2 s  . co  m
    if (valueStr == null) {
        String l = localParams.get("l");
        String u = localParams.get("u");
        boolean includeLower = localParams.getBool("incl", true);
        boolean includeUpper = localParams.getBool("incu", true);
        rf = new ValueSourceRangeFilter(valueSource, l, u, includeLower, includeUpper);
    } else {
        verifyValueStr(valueStr, valueSource);
        rf = parseRange(valueSource, valueStr);
    }

    return new RangeCollectorFilterable(rf);
}