Example usage for org.apache.lucene.queries.function FunctionQuery getValueSource

List of usage examples for org.apache.lucene.queries.function FunctionQuery getValueSource

Introduction

In this page you can find the example usage for org.apache.lucene.queries.function FunctionQuery getValueSource.

Prototype

public ValueSource getValueSource() 

Source Link

Usage

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

License:Apache License

@Override
public Query parse() throws SyntaxError {
    if (localParams == null) {
        throw new SolrException(ErrorCode.BAD_REQUEST,
                CollectorFilterQParserPlugin.NAME + " QParser miss localParams");
    }/*  www.  j a v  a  2 s  .com*/
    String name = localParams.get(CF_NAME);
    CollectorFilterablePlugin cfPlugin = getCollectorFilterablePlugin(name);
    if (cfPlugin == null) {
        throw new SolrException(ErrorCode.BAD_REQUEST, CollectorFilterQParserPlugin.NAME
                + " QParser not found '" + name + "' CollectorFilterablePlugin");
    }

    // parse func for vs
    FunctionQuery funQ = (FunctionQuery) super.parse();
    ValueSource vs = funQ.getValueSource();

    // try parse value
    String valueStr = null;
    int valueIndex = qstr.indexOf(":");
    if (valueIndex > 0 && valueIndex < qstr.length() - 1) {
        valueStr = qstr.substring(valueIndex + 1);
    }

    // create cf
    CollectorFilterable cf = cfPlugin.createCollectorFilterable(name, localParams, localParams, req, vs,
            valueStr);

    if (localParams.getBool(CF_NOT, false)) {
        // negative cf
        cf = new WrappedNotCollectorFilterable(cf);
    }

    return new CollectorFilterQuery(new ValueSourceCollectorFilter(vs, cf));
}