private static String preProcessQuery(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req){ // prevent white space tokenization ExtendedDismaxQParser qParser = new ExtendedDismaxQParser(qstr.replace(" ",","), localParams, params, req); try{ Query query = qParser.parse(); return query.toString(); } catch (Exception ex){ return "ERROR"; } }
private static String preProcessQuery(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req){ // prevent white space tokenization ExtendedDismaxQParser qParser = new ExtendedDismaxQParser(qstr.replace(" ",","), localParams, params, req); try{ Query query = qParser.parse(); return query.toString(); } catch (Exception ex){ return "ERROR"; } } }
/** * From a list of alternate queries in text format, parse them using the default * ExtendedSolrQueryParser and return the queries. * * @param solrParams * @param alternateQueryTexts * @return */ private List<Query> createSynonymQueries(SolrParams solrParams, List<String> alternateQueryTexts) { String nullsafeOriginalString = getQueryStringFromParser(); List<Query> result = new ArrayList<>(); for (String alternateQueryText : alternateQueryTexts) { if (alternateQueryText.equalsIgnoreCase(nullsafeOriginalString)) { // alternate query is the same as what the user entered continue; } synonymQueryParser.setString(alternateQueryText); try { result.add(synonymQueryParser.parse()); } catch (SyntaxError e) { // TODO: better error handling - for now just bail out; ignore this synonym e.printStackTrace(System.err); } } return result; }
@Override public Query parse() throws SyntaxError { Query query = mainQueryParser.parse();