Refine search
final SolrQuery solrQuery = new SolrQuery(); final boolean isSolrCloud = SOLR_TYPE_CLOUD.equals(context.getProperty(SOLR_TYPE).getValue()); final String collection = context.getProperty(COLLECTION).evaluateAttributeExpressions(flowFileResponse).getValue(); solrQuery.setQuery(context.getProperty(SOLR_PARAM_QUERY).evaluateAttributeExpressions(flowFileResponse).getValue()); solrQuery.setRequestHandler(context.getProperty(SOLR_PARAM_REQUEST_HANDLER).evaluateAttributeExpressions(flowFileResponse).getValue());
@Override public GroupResponse group(GroupRequest groupRequest) throws InvalidSearchException { try { String groupNames = groupRequest.getGroups().stream().map(Group::getField).collect( Collectors.joining(",")); SolrQuery query = new SolrQuery() .setStart(0) .setRows(0) .setQuery(groupRequest.getQuery()); query.set("collection", getCollections(groupRequest.getIndices())); Optional<String> scoreField = groupRequest.getScoreField(); if (scoreField.isPresent()) { query.set("stats", true); query.set("stats.field", String.format("{!tag=piv1 sum=true}%s", scoreField.get())); } query.set("facet", true); query.set("facet.pivot", String.format("{!stats=piv1}%s", groupNames)); QueryResponse response = client.query(query); return buildGroupResponse(groupRequest, response); } catch (IOException | SolrServerException e) { String msg = e.getMessage(); LOG.error(msg, e); throw new InvalidSearchException(msg, e); } }
@Override public Document getLatest(String guid, String sensorType) throws IOException { if (MetaAlertConstants.METAALERT_TYPE.equals(sensorType)) { // Unfortunately, we can't just defer to the indexDao for this. Child alerts in Solr end up // having to be dug out. String guidClause = Constants.GUID + ":" + guid; SolrQuery query = new SolrQuery(); query.setQuery(guidClause) .setFields("*", "[child parentFilter=" + guidClause + " limit=999]"); try { QueryResponse response = solrDao.getSolrClient(solrDao.getZkHosts()) .query(METAALERTS_COLLECTION, query); // GUID is unique, so it's definitely the first result if (response.getResults().size() == 1) { SolrDocument result = response.getResults().get(0); return SolrUtilities.toDocument(result); } else { return null; } } catch (SolrServerException e) { throw new IOException("Unable to retrieve metaalert", e); } } else { return solrDao.getLatest(guid, sensorType); } }
String fullClause = "{!parent which=" + activeClause + "}" + guidClause; String metaalertTypeClause = config.getSourceTypeField() + ":" + MetaAlertConstants.METAALERT_TYPE; SolrQuery solrQuery = new SolrQuery() .setQuery(fullClause) .setFields("*", "[child parentFilter=" + metaalertTypeClause + " limit=999]") .addSort(Constants.GUID,
protected SolrQuery buildSearchRequest( SearchRequest searchRequest, String fieldList) throws IOException, SolrServerException { SolrQuery query = new SolrQuery() .setStart(searchRequest.getFrom()) .setRows(searchRequest.getSize()) .setQuery(searchRequest.getQuery()); // handle sort fields for (SortField sortField : searchRequest.getSort()) { query.addSort(sortField.getField(), getSolrSortOrder(sortField.getSortOrder())); } // handle search fields List<String> fields = searchRequest.getFields(); if (fieldList == null) { fieldList = "*"; if (fields != null) { fieldList = StringUtils.join(fields, ","); } } query.set("fl", fieldList); //handle facet fields List<String> facetFields = searchRequest.getFacetFields(); if (facetFields != null) { facetFields.forEach(query::addFacetField); } query.set("collection", getCollections(searchRequest.getIndices())); return query; }
/** * This method simply wraps the given <code>queryTerm</code> in a {@link SolrQuery} instance. * * @param queryTerm * {@link String} query term to be represented as a {@link SolrQuery} * @return {@link SolrQuery} wrapping the given <code>queryTerm</code> */ public static SolrQuery prepareSolrQuery(String queryTerm) { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(queryTerm); return solrQuery; }
/** * A query that shows how to use range query on geo-location data (double) */ private SolrQuery getGeoQuery() { final SolrQuery query = new SolrQuery(); query.setQuery("ChargeDeviceLocation : { " + "Latitude : xsd:double([52 TO 53]), " + "Longitude : xsd:double([-2 TO 2]) " + "}"); return query; }
String queryExpression = "*:*"; String sortField = "createTime"; -String baseUrl = SolrUtil.getSolrBaseURL(solrHttpServer.getBaseURL()); -solrHttpServer.setBaseURL(baseUrl + "/" + coreName); SolrQuery query = new SolrQuery(); query.setQuery(queryExpression); query.setSortField(sortField, SolrQuery.ORDER.asc); -QueryResponse rsp = solrHttpServer.query(query); +QueryResponse rsp = servers.get(coreName).query(query);
/** * A query that shows how to use the nested query parameter to use Solr's * query parsers on Solr's fields. */ private SolrQuery getNestedQuery() { final SolrQuery query = new SolrQuery(); query.setQuery("DeviceOwner : { Website : uri(www.sourcelondon.net) }"); query.setParam("nested", "{!lucene} name:university"); return query; }
// Queries all documents (*:*) and shows only the id SolrQuery query = new SolrQuery(); query.setQuery("*:*"); // actual query QueryResponse response = null; try { response = solr.query(query); } catch (SolrServerException e) {/* */ } SolrDocumentList list = response.getResults(); System.out.println(list.toString()); // print the results of the query
String queryExpression = "*:*"; String sortField = "createTime"; -String baseUrl = SolrUtil.getSolrBaseURL(solrHttpServer.getBaseURL()); -solrHttpServer.setBaseURL(baseUrl + "/" + coreName); SolrQuery query = new SolrQuery(); +query.set(CommonParams.QT, "/" + coreName + "/select"); query.setQuery(queryExpression); query.setSortField(sortField, SolrQuery.ORDER.asc); QueryResponse rsp = solrHttpServer.query(query);
protected HttpSolrServer getSolr() throws MalformedURLException, SolrServerException { if (solr == null) { String solrService = ConfigurationManager.getProperty("solr.authority.server"); log.debug("Solr authority URL: " + solrService); solr = new HttpSolrServer(solrService); solr.setBaseURL(solrService); SolrQuery solrQuery = new SolrQuery().setQuery("*:*"); solr.query(solrQuery); } return solr; }