Example usage for org.apache.solr.search QParser getParser

List of usage examples for org.apache.solr.search QParser getParser

Introduction

In this page you can find the example usage for org.apache.solr.search QParser getParser.

Prototype

public static QParser getParser(String qstr, String parserName, boolean allowLocalParams, SolrQueryRequest req)
        throws SyntaxError 

Source Link

Document

Expert: Create a QParser to parse qstr using the parserName parser, while allowing a toggle for whether local-params may be parsed.

Usage

From source file:org.tallison.solr.search.QueryEqualityTest.java

License:Apache License

/**
 * NOTE: defType is not only used to pick the parser, but, if non-null it is
 * also to record the parser being tested for coverage sanity checking
 *
 * @see QueryUtils#check// w ww  .  j  a v  a2  s.  co  m
 * @see QueryUtils#checkEqual
 * @see #testParserCoverage
 */
protected void assertQueryEquals(final String defType, final SolrQueryRequest req, final String... inputs)
        throws Exception {

    if (null != defType)
        qParsersTested.add(defType);

    final Query[] queries = new Query[inputs.length];

    try {
        SolrQueryResponse rsp = new SolrQueryResponse();
        SolrRequestInfo.setRequestInfo(new SolrRequestInfo(req, rsp));
        for (int i = 0; i < inputs.length; i++) {
            queries[i] = QParser.getParser(inputs[i], defType, true, req).getQuery();
        }
    } finally {
        SolrRequestInfo.clearRequestInfo();
    }

    for (int i = 0; i < queries.length; i++) {
        QueryUtils.check(queries[i]);
        // yes starting j=0 is redundent, we're making sure every query
        // is equal to itself, and that the quality checks work regardless
        // of which caller/callee is used.
        for (int j = 0; j < queries.length; j++) {
            QueryUtils.checkEqual(queries[i], queries[j]);
        }
    }
}