public Query getHighlightQuery() throws ParseException { return getQuery(); }
public static Query parseQuery(SolrQueryRequest request, String q, String defType) throws SyntaxError { QParser parser = QParser.getParser(q, defType, request); return parser.getQuery(); } }
/** 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; }
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>(); }
@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 null; }
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(); }
public Query parse() throws ParseException { baseParser = subQuery(localParams.get(QueryParsing.V), null); return baseParser.getQuery(); }
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); }
private void SearchDocumentsTypeII(SolrDocumentList results, SolrIndexSearcher searcher, String q, UserPermissions up, int ndocs, SolrQueryRequest req, Map<String, SchemaField> fields, Set<Integer> alreadyFound) throws IOException, ParseException { BooleanQuery bq = new BooleanQuery(); String permLvl = "PermissionLevel:" + up.getPermissionLevel(); QParser parser = QParser.getParser(permLvl, null, req); bq.add(parser.getQuery(), Occur.MUST); Filter filter = CachingWrapperFilter(new QueryWrapperFilter(bq)); QueryParser qp = new QueryParser(q, new StandardAnalyzer()); Query query = qp.parse(q); append (results, searcher.search( query, filter, 50).scoreDocs, alreadyFound, fields, new HashMap<String,Object>(), 0, searcher.getReader(), true); }
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(); }
@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); } }
/** * Build the nested queries and add them as a (MUST) clause of the main query. */ private void addNestedQuery(final BooleanQuery main, final SolrParams solrParams) throws ParseException { if (solrParams.getParams("nested") != null) { for (final String nested : solrParams.getParams("nested")) { final QParser baseParser = this.subQuery(nested, null); main.add(baseParser.getQuery(), Occur.MUST); } } }
private void doCompact(LazyDocumentLoader documentLoader, LazyCompactor compactor, SolrQueryResponse rsp, String tsId, String q) throws IOException, SyntaxError { Query query = depProvider.parser(q).getQuery(); Iterable<Document> docs = documentLoader.load(query, SORT); Iterable<CompactionResult> compactionResults = compactor.compact(docs); List<Document> docsToDelete = new LinkedList<>(); List<SolrInputDocument> docsToAdd = new LinkedList<>(); compactionResults.forEach(it -> { docsToDelete.addAll(it.getInputDocuments()); docsToAdd.addAll(it.getOutputDocuments()); }); depProvider.solrUpdateService().add(docsToAdd); depProvider.solrUpdateService().delete(docsToDelete); rsp.add("timeseries " + tsId + " oldNumDocs:", docsToDelete.size()); rsp.add("timeseries " + tsId + " newNumDocs:", docsToAdd.size()); }
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); }
/** * Process the nested queries and add them as a (MUST) clause of the {@link org.apache.lucene.search.BooleanQuery} * that will be executed. */ private void processNestedQuery(final BooleanQuery main, final SolrParams solrParams) throws SyntaxError { if (solrParams.getParams("nested") != null) { for (final String nested : solrParams.getParams("nested")) { final QParser baseParser = this.subQuery(nested, null); main.add(baseParser.getQuery(), Occur.MUST); } } }
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); }
/** * 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; }