/** * @param query the query * @return a lucene qparser * @throws SyntaxError iff something goes wrong */ public QParser parser(String query) throws SyntaxError { return QParser.getParser(query, req); } }
public static Query parseQuery(SolrQueryRequest request, String q, String defType) throws SyntaxError { QParser parser = QParser.getParser(q, defType, request); return parser.getQuery(); } }
/** * Returns the {@link QParser} associated with this request. * * @param request the {@link SolrQueryRequest}. * @return the {@link QParser} associated with this request. * @throws SyntaxError in case of syntax errors. */ QParser qParser(final SolrQueryRequest request) throws SyntaxError { return QParser.getParser( queryString(request), DEFAULT_DEF_TYPE, request); }
/** Turns an array of query strings into a List of Query objects. * * @return null if no queries are generated */ public static List<Query> parseQueryStrings(SolrQueryRequest req, String[] queries) throws ParseException { if (null == queries || 0 == queries.length) return null; List<Query> out = new ArrayList<Query>(queries.length); for (String q : queries) { if (null != q && 0 != q.trim().length()) { out.add(QParser.getParser(q, null, req).getQuery()); } } return out; }
@Override public void addFilterConstraint(final List<Query> filters, final String value, SolrQueryRequest request) { try { filters.add(QParser.getParser( new StringBuilder() .append(Field.DATE_OBJECT) .append(": \"") .append(format(value)) .append("\"") .toString(), "lucene", request).getQuery()); } catch (final Exception exception) { LOGGER.error(MessageCatalog._00110_INVALID_DATE_VALUE, exception, value); throw new IllegalArgumentException(exception); } }
private List<Query> getFilters(SolrQueryRequest req, String param) throws SyntaxError { String[] fqs = req.getParams().getParams(param); if (fqs!=null && fqs.length!=0) { List<Query> filters = new ArrayList<Query>(); for (String fq : fqs) { if (fq != null && fq.trim().length()!=0) { QParser fqp = QParser.getParser(fq, null, req); filters.add(fqp.getQuery()); } } return filters; } return new ArrayList<Query>(); }
private List<Query> getFilters(SolrQueryRequest req, String param) throws SyntaxError { String[] fqs = req.getParams().getParams(param); if (fqs!=null && fqs.length!=0) { List<Query> filters = new ArrayList<Query>(); for (String fq : fqs) { if (fq != null && fq.trim().length()!=0) { QParser fqp = QParser.getParser(fq, null, req); filters.add(fqp.getQuery()); } } return filters; } return null; }
/** Create a new QParser for parsing an embedded sub-query */ public QParser subQuery(String q, String defaultType) throws ParseException { checkRecurse(); if (defaultType == null && localParams != null) { // if not passed, try and get the defaultType from local params defaultType = localParams.get(QueryParsing.DEFTYPE); } QParser nestedParser = getParser(q, defaultType, getReq()); nestedParser.recurseCount = recurseCount; recurseCount--; return nestedParser; }
@Override public Query parseRawQuery(final RawQuery rawQuery) throws SyntaxException { try { return QParser.getParser(rawQuery.getQueryString(), null, request).getQuery(); } catch (SyntaxError syntaxError) { throw new SyntaxException(syntaxError); } }
public static Query parseQuery(SolrQueryRequest request, String q) throws SyntaxError { final SolrParams params = request.getParams(); String defType = params.get(QueryParsing.DEFTYPE, EDISMAX); QParser parser = QParser.getParser(q, defType, request); return parser.getQuery(); }
/** * Parses the fq param and adds it as a list of filter queries or reverts to null if nothing is found * or an Exception is thrown. * * @param req * @return either a query from the QueryParser or null */ private List<Query> getFilterQueries(SolrQueryRequest req) { List<Query> filters = null; String[] fqs = req.getParams().getParams("fq"); if (fqs != null && fqs.length != 0) { filters = new ArrayList<>(fqs.length); try { for (String fq : fqs) { if (fq != null && fq.trim().length() != 0) { QParser fqp = QParser.getParser(fq, req); fqp.setIsFilter(true); filters.add(fqp.getQuery()); } } } catch (SyntaxError e) { e.printStackTrace(); } if (filters.isEmpty()) { filters = null; } } return filters; }
return (FunctionQuery)(QParser.getParser(func,"func",new LocalSolrQueryRequest(core,new HashMap())).parse());
private Filter buildFilter(String[] fqs, SolrQueryRequest req) throws IOException, ParseException { if (fqs != null && fqs.length > 0) { BooleanQuery fquery = new BooleanQuery(); for (int i = 0; i < fqs.length; i++) { QParser parser = null; try { parser = QParser.getParser(fqs[i], null, req); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fquery.add(parser.getQuery(), Occur.MUST); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return new CachingWrapperFilter(new QueryWrapperFilter(fquery)); } return null; }
private DocSet getDocSet(ResponseBuilder rb, String buildQuery) throws SyntaxError, IOException { SolrParams params = rb.req.getParams(); String defType = params.get(QueryParsing.DEFTYPE, QParserPlugin.DEFAULT_QTYPE); QParser parser = QParser.getParser(buildQuery, defType, rb.req); Query query = parser.getQuery(); return rb.req.getSearcher().getDocSet(query); }
private Filter buildFilter(String[] fqs, SolrQueryRequest req) throws IOException, ParseException { if (fqs != null && fqs.length > 0) { BooleanQuery fquery = new BooleanQuery(); for (int i = 0; i < fqs.length; i++) { QParser parser = null; try { parser = QParser.getParser(fqs[i], null, req); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fquery.add(parser.getQuery(), Occur.MUST); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } return new CachingWrapperFilter(new QueryWrapperFilter(fquery)); } return null; }
List<Query> filterQueries = new ArrayList<Query>(corpusFilterQueries.length); for (String corpusFilterQuery : corpusFilterQueries) { QParser qParser = QParser.getParser(corpusFilterQuery, null, req); try { filterQueries.add(qParser.parse());
List<Query> filterQueries = new ArrayList<Query>(corpusFilterQueries.length); for (String corpusFilterQuery : corpusFilterQueries) { QParser qParser = QParser.getParser(corpusFilterQuery, null, req); try { filterQueries.add(qParser.parse());
/** * Returns a list of facet counts for each of the facet queries * specified in the params * * @see FacetParams#FACET_QUERY */ public NamedList getFacetQueryCounts() throws IOException,ParseException { NamedList res = new SimpleOrderedMap(); /* Ignore CommonParams.DF - could have init param facet.query assuming * the schema default with query param DF intented to only affect Q. * If user doesn't want schema default for facet.query, they should be * explicit. */ // SolrQueryParser qp = searcher.getSchema().getSolrQueryParser(null); String[] facetQs = params.getParams(FacetParams.FACET_QUERY); if (null != facetQs && 0 != facetQs.length) { for (String q : facetQs) { parseParams(FacetParams.FACET_QUERY, q); // TODO: slight optimization would prevent double-parsing of any localParams Query qobj = QParser.getParser(q, null, req).getQuery(); res.add(key, searcher.numDocs(qobj, base)); } } return res; }
/** * Searches the index, if older documents exists. Updates the solr query response. * * @param req - the solr query request information * @param rsp - the solr query response information * @return true if the hit count is greater zero, otherwise false * @throws SyntaxError, IOException if bad things happen */ private boolean olderDocumentsExists(String queryString, SolrQueryRequest req, SolrQueryResponse rsp) throws SyntaxError, IOException { String defType = req.getParams().get(QueryParsing.DEFTYPE, QParserPlugin.DEFAULT_QTYPE); QParser queryParser = QParser.getParser(queryString, defType, req); Query query = queryParser.getQuery(); TotalHitCountCollector totalHitCountCollector = new TotalHitCountCollector(); req.getSearcher().search(query, totalHitCountCollector); rsp.add("query", String.format("%s:[* TO NOW-%s]", queryField, timeSeriesAge)); rsp.add("queryTechnical", queryString); rsp.add("removedDocuments", totalHitCountCollector.getTotalHits()); return totalHitCountCollector.getTotalHits() != 0; }