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"; } }
@Override public String[] getDefaultHighlightFields() { return mainQueryParser.getDefaultHighlightFields(); }
@Override public Query getHighlightQuery() throws SyntaxError { return queryToHighlight != null ? queryToHighlight : mainQueryParser.getHighlightQuery(); }
/** * 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; }
public SynonymExpandingExtendedDismaxQParser(String qstr, SolrParams localParams, SolrParams params, SolrQueryRequest req, Map<String, Analyzer> synonymAnalyzers) { super(qstr, localParams, params, req); mainQueryParser = new ExtendedDismaxQParser(qstr, localParams, params, req); // ensure the synonyms aren't artificially boosted synonymQueryParser = new ExtendedDismaxQParser(qstr, NoBoostSolrParams.wrap(localParams), NoBoostSolrParams.wrap(params), req); this.synonymAnalyzers = synonymAnalyzers; }
@Override public Query parse() throws SyntaxError { Query query = mainQueryParser.parse();
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"; } } }