List of usage examples for org.apache.lucene.queryparser.flexible.core.parser SyntaxParser parse
public QueryNode parse(CharSequence query, CharSequence field) throws QueryNodeParseException;
From source file:org.apache.solr.handler.component.AqpQueryTree.java
License:Apache License
@Override public void prepare(ResponseBuilder rb) throws IOException { SolrQueryRequest req = rb.req;/* ww w .ja v a 2 s . c om*/ SolrParams params = req.getParams(); if (!params.getBool(COMPONENT_NAME, true)) { return; } SolrQueryResponse rsp = rb.rsp; String defType = params.get(QueryParsing.DEFTYPE, QParserPlugin.DEFAULT_QTYPE); // get it from the response builder to give a different component a chance // to set it. String queryString = rb.getQueryString(); if (queryString == null) { // this is the normal way it's set. queryString = params.get(CommonParams.Q); } QParser parser; try { parser = QParser.getParser(queryString, defType, req); if (parser instanceof AqpAdsabsQParser) { AqpQueryParser aqpParser = ((AqpAdsabsQParser) parser).getParser(); SyntaxParser syntaxParser = aqpParser.getSyntaxParser(); QueryNode queryTree = syntaxParser.parse(queryString, null); if (queryTree instanceof AqpANTLRNode) { if (params.get(CommonParams.WT, null) == "xml") { //System.err.println(((AqpANTLRNode) queryTree).toJson()); rsp.add("qtree", ((AqpANTLRNode) queryTree).toString()); } else { //System.err.println(((AqpANTLRNode) queryTree).toString()); rsp.add("qtree", ((AqpANTLRNode) queryTree).toJson()); } } } } catch (QueryNodeParseException e) { rsp.add("qtreeError", e.getMessage()); } catch (SyntaxError e) { rsp.add("qtreeError", e.getMessage()); } }