private List<Query> parseQueriesFromParam(final String paramName, final String defaultParserName) throws SyntaxException { final String[] qStrings = getRequestParams(paramName); if (qStrings.length > 0) { final List<Query> result = new ArrayList<>(qStrings.length); for (String qs : qStrings) { if (qs != null && qs.trim().length()> 0) { try { result.add(qParser.subQuery(qs, defaultParserName).getQuery()); } catch (final SyntaxError syntaxError) { throw new SyntaxException(syntaxError); } } } return result; } return Collections.emptyList(); }
protected Query getFieldQuery(String field, String queryText) throws ParseException { checkNullField(field); // intercept magic field name of "_" to use as a hook for our // own functions. if (field.charAt(0) == '_') { if ("_val_".equals(field)) { if (parser==null) { return QueryParsing.parseFunction(queryText, schema); } else { QParser nested = parser.subQuery(queryText, "func"); return nested.getQuery(); } } else if ("_query_".equals(field) && parser != null) { return parser.subQuery(queryText, null).getQuery(); } } // default to a normal field query return super.getFieldQuery(field, queryText); }
final Query fq = qParser.subQuery(bfAndBoost.getKey(), FunctionQParserPlugin.NAME).getQuery(); final Float b = bfAndBoost.getValue(); if (null != b && b != 1f) {
private Query getBoostedFunctionQuery(Query q) throws SyntaxError{ if (moreLikeThis.getBoostFn() == null || moreLikeThis.getBoostFn().trim().length() == 0) { return q; } Query boost = this.qParser.subQuery(moreLikeThis.getBoostFn(), FunctionQParserPlugin.NAME).getQuery(); ValueSource vs; if (boost instanceof FunctionQuery) { vs = ((FunctionQuery) boost).getValueSource(); } else { vs = new QueryValueSource(boost, 1.0f); } return new BoostedQuery(q, vs); }
private Query getBoostedFunctionQuery(Query q) throws SyntaxError{ if (mlt.getBoostFn() == null || mlt.getBoostFn().trim().length() == 0) { return q; } Query boost = this.qParser.subQuery(mlt.getBoostFn(), FunctionQParserPlugin.NAME).getQuery(); ValueSource vs; if (boost instanceof FunctionQuery) { vs = ((FunctionQuery) boost).getValueSource(); } else { vs = new QueryValueSource(boost, 1.0f); } return new BoostedQuery(q, vs); }
/** * Create a new QParser for parsing an embedded nested query. * <p> * Remove the nested parameters from the original request to avoid infinite * recursion. */ @Override public QParser subQuery(final String q, final String defaultType) throws ParseException { final QParser nestedParser = super.subQuery(q, defaultType); final NamedList<Object> params = nestedParser.getParams().toNamedList(); params.remove("nested"); nestedParser.setParams(SolrParams.toSolrParams(params)); return nestedParser; }
/** * Create a new QParser for parsing an embedded nested query. * <p> * Remove the nested parameters from the original request to avoid infinite * recursion. */ @Override public QParser subQuery(final String q, final String defaultType) throws SyntaxError { final QParser nestedParser = super.subQuery(q, defaultType); final NamedList<Object> params = nestedParser.getParams().toNamedList(); params.remove("nested"); nestedParser.setParams(SolrParams.toSolrParams(params)); return nestedParser; }