@Override @SuppressWarnings("unchecked") public void init(NamedList args) { super.init(args); Map<String,String> macro = new HashMap<>(); macro.put("expandMacros", "false"); defaults = SolrParams.wrapDefaults(defaults, new MapSolrParams(macro)); }
/** * Constructor for the QParser * * @param qstr The part of the query string specific to this parser * @param localParams The set of parameters that are specific to this QParser. See http://wiki.apache.org/solr/LocalParams * @param params The rest of the {@link SolrParams} * @param req The original {@link SolrQueryRequest}. */ public QuerqyDismaxQParser(final String qstr, final SolrParams localParams, final SolrParams params, final SolrQueryRequest req, final QuerqyParser querqyParser, final RewriteChain rewriteChain, final TermQueryCache termQueryCache) { super(qstr, localParams, params, req); final String q = Objects.requireNonNull(qstr).trim(); if (q.isEmpty()) { throw new SolrException(BAD_REQUEST, "Query string must not be empty"); } this.userQueryString = q; this.querqyParser = querqyParser; requestAdapter = new DismaxSearchEngineRequestAdapter(this, req, userQueryString, SolrParams.wrapDefaults(localParams, params), querqyParser, rewriteChain, termQueryCache); controller = new QueryParsingController(requestAdapter); }
@Override public Query parse() throws ParseException { if (qstr == null || qstr.length()==0) return null; final SolrParams solrParams = SolrParams.wrapDefaults(localParams, params); final Map<String, Float> boosts = parseQueryFields(req.getSchema(), solrParams); final BooleanQuery main = this.getMainQuery(boosts, qstr); this.addNestedQuery(main, solrParams); return main; }
/** * This request handler supports configuration options defined at the top level as well as * those in typical Solr 'defaults', 'appends', and 'invariants'. The top level ones are treated * as invariants. */ private void setTopInitArgsAsInvariants(SolrQueryRequest req) { // First convert top level initArgs to SolrParams HashMap<String,String> map = new HashMap<>(initArgs.size()); for (int i=0; i<initArgs.size(); i++) { Object val = initArgs.getVal(i); if (val != null && !(val instanceof NamedList)) map.put(initArgs.getName(i), val.toString()); } if (map.isEmpty()) return;//short circuit; nothing to do SolrParams topInvariants = new MapSolrParams(map); // By putting putting the top level into the 1st arg, it overrides request params in 2nd arg. req.setParams(SolrParams.wrapDefaults(topInvariants, req.getParams())); }
@Override public Query parse() throws SyntaxError { final SolrParams solrParams = SolrParams.wrapDefaults(localParams, params); final Map<String, Float> boosts = parseQueryFields(req.getSchema(), solrParams); // We disable the coord because this query is an artificial construct final BooleanQuery query = new BooleanQuery(true); // if empty main query, ignore and try to parse the nested queries if (qstr != null && !qstr.isEmpty()) { this.processMainQuery(query, boosts, qstr); } this.processNestedQuery(query, solrParams); return query; }
/** * This request handler supports configuration options defined at the top level as well as * those in typical Solr 'defaults', 'appends', and 'invariants'. The top level ones are treated * as invariants. */ private void setTopInitArgsAsInvariants(SolrQueryRequest req) { // First convert top level initArgs to SolrParams HashMap<String,String> map = new HashMap<>(initArgs.size()); for (int i=0; i<initArgs.size(); i++) { Object val = initArgs.getVal(i); if (val != null && !(val instanceof NamedList)) map.put(initArgs.getName(i), val.toString()); } if (map.isEmpty()) return;//short circuit; nothing to do SolrParams topInvariants = new MapSolrParams(map); // By putting putting the top level into the 1st arg, it overrides request params in 2nd arg. req.setParams(SolrParams.wrapDefaults(topInvariants, req.getParams())); }
SolrParams solrParams = localParams == null ? params : SolrParams.wrapDefaults(localParams, params);
@Override public SolrParams getParams() { ModifiableSolrParams params = (ModifiableSolrParams) super.getParams(); params.add(CommonParams.NAME, aliasName); params.add(ROUTER_TYPE_NAME, "time"); params.add(ROUTER_FIELD, routerField); params.add(ROUTER_START, start); params.add(ROUTER_INTERVAL, interval); if (tz != null) { params.add(CommonParams.TZ, tz.getID()); } if (maxFutureMs != null) { params.add(ROUTER_MAX_FUTURE, ""+maxFutureMs); } if (preemptiveCreateMath != null) { params.add(ROUTER_PREEMPTIVE_CREATE_WINDOW, preemptiveCreateMath); } // merge the above with collectionParams. Above takes precedence. ModifiableSolrParams createCollParams = new ModifiableSolrParams(); // output target final SolrParams collParams = createCollTemplate.getParams(); final Iterator<String> pIter = collParams.getParameterNamesIterator(); while (pIter.hasNext()) { String key = pIter.next(); if (key.equals(CollectionParams.ACTION) || key.equals("name")) { continue; } createCollParams.set("create-collection." + key, collParams.getParams(key)); } return SolrParams.wrapDefaults(params, createCollParams); }