List of usage examples for org.apache.solr.client.solrj SolrQuery setQuery
public SolrQuery setQuery(String query)
From source file:fr.cnes.sitools.metacatalogue.opensearch.extractor.OpensearchMetadataExtractor.java
License:Open Source License
@Override public void execute(MetadataContainer data) throws ProcessException { logger = getLogger(context);/*w w w . j a v a2 s. c om*/ String metadata = data.getJsonData(); List<JSONObject> features = JsonPath.read(metadata, "$.features"); List<MetadataRecords> listFields = new ArrayList<MetadataRecords>(); for (JSONObject jsonObject : features) { String jsonString = jsonObject.toJSONString(); MetadataRecords record = new MetadataRecords(); addField(record, "$.id", jsonString, MetacatalogField.IDENTIFIER); addField(record, "$.properties.title", jsonString, MetacatalogField.TITLE); addField(record, "$.properties.description", jsonString, MetacatalogField.DESCRIPTION); addField(record, "$.properties.project", jsonString, MetacatalogField.PROJECT); addField(record, "$.properties.productType", jsonString, MetacatalogField.PRODUCT); addField(record, "$.properties.platform", jsonString, MetacatalogField.PLATFORM); addField(record, "$.properties.instrument", jsonString, MetacatalogField.INSTRUMENT); addField(record, "$.properties.authority", jsonString, MetacatalogField.AUTHORITY); addField(record, "$.properties.processingLevel", jsonString, MetacatalogField.PROCESSING_LEVEL); // addField(fields, new Date().toString(), MetacatalogField.MODIFICATION_DATE); addField(record, "$.properties.startDate", jsonString, MetacatalogField.START_DATE); addField(record, "$.properties.completionDate", jsonString, MetacatalogField.COMPLETION_DATE); addField(record, "$.properties.resolution", jsonString, MetacatalogField.RESOLUTION); addField(record, "$.properties.wms", jsonString, MetacatalogField.WMS); if (checkFieldExists("$.properties.services", jsonString) && checkFieldExists("$.properties.services.download", jsonString)) { addField(record, "$.properties.services.download.url", jsonString, MetacatalogField.ARCHIVE); addField(record, "$.properties.services.download.mimeType", jsonString, MetacatalogField.MIME_TYPE); } // addField(fields, "$.properties.services.metadata.url", jsonString, // MetacatalogField.SERVICES_METADATA_URL); addField(record, "$.properties.quicklook", jsonString, MetacatalogField.QUICKLOOK); addField(record, "$.properties.thumbnail", jsonString, MetacatalogField.THUMBNAIL); // geometry addField(record, "$.geometry", jsonString, MetacatalogField._GEOMETRY_GEOJSON); addField(record, "$.properties.producer", jsonString, MetacatalogField.PRODUCER); addField(record, "$.properties.sensorMode", jsonString, MetacatalogField.SENSOR_MODE); // public services addField(record, String.valueOf(conf.isPublicServices()), MetacatalogField._PUBLIC_SERVICES.getField()); HarvestStatus status = (HarvestStatus) context.getAttributes().get(ContextAttributes.STATUS); // modified List<String> frmt = HarvesterSettings.getInstance().getDateFormats(); String modified = DateUtils.format(status.getStartDate(), frmt); addField(record, modified, MetacatalogField.MODIFIED.getField()); // created Date creationDate = null; SolrServer server = (SolrServer) context.getAttributes().get("INDEXER_SERVER"); SolrQuery solrQuery = new SolrQuery(); Object identifier = jsonObject.get(MetacatalogField.ID.getField()); if (identifier != null) { try { solrQuery.setQuery(MetacatalogField.IDENTIFIER.getField() + ":" + String.format("\"%s\"", identifier.toString())); QueryResponse rsp = server.query(solrQuery); SolrDocumentList listDocuments = rsp.getResults(); if (!listDocuments.isEmpty()) { SolrDocument solrDocument = listDocuments.get(0); creationDate = (Date) solrDocument.get(MetacatalogField.CREATED.getField()); } } catch (SolrServerException e) { e.printStackTrace(); } } String created; if (creationDate != null) { created = DateUtils.format(creationDate, frmt); } else { created = DateUtils.format(status.getStartDate(), frmt); } addField(record, created, MetacatalogField.CREATED.getField()); OpensearchGeometryExtractor extractor = new OpensearchGeometryExtractor(); try { String geometry = JsonPath.read(jsonString, "$.geometry").toString(); record = extractor.extractGeometry(geometry, record, context); } catch (Exception e) { logger.log(Level.WARNING, e.getMessage(), e); // throw new ProcessException(e); continue; } // add the custom attributes addCustomAttributes(jsonString, record, conf.getAttributes()); listFields.add(record); } if (data.getMetadataRecords() == null) { data.setMetadataRecords(listFields); } else { data.getMetadataRecords().addAll(listFields); } if (next != null) { next.execute(data); } }
From source file:fr.cnes.sitools.metacatalogue.resources.opensearch.AbstractOpensearchSearchResource.java
License:Open Source License
private void setQuery(SolrQuery solrQuery, Form query) throws Exception { String queryStr = ""; boolean first = true; for (Parameter parameter : query) { String pieceOfQuery = null; if (!isStandardParameter(parameter.getName())) { pieceOfQuery = parameter.getName() + ":" + parameter.getSecond(); } else if (parameter.getName().equals(OpenSearchQuery.SEARCH_TERMS.getParamName())) { pieceOfQuery = parameter.getSecond(); } else if (parameter.getName().equals(OpenSearchQuery.MODIFIED.getParamName())) { String dateStr = getDateParam(parameter, DATE_QUERY_TYPE.GT); if (dateStr != null) { pieceOfQuery = MetacatalogField.MODIFIED.getField() + ":" + dateStr; }/*from ww w . j a v a2 s . co m*/ } else if (parameter.getName().equals(OpenSearchQuery.TIME_START.getParamName())) { String dateStr = getDateParam(parameter, DATE_QUERY_TYPE.GT); if (dateStr != null) { pieceOfQuery = MetacatalogField.START_DATE.getField() + ":" + dateStr; } } else if (parameter.getName().equals(OpenSearchQuery.TIME_END.getParamName())) { String dateStr = getDateParam(parameter, DATE_QUERY_TYPE.LT); if (dateStr != null) { pieceOfQuery = MetacatalogField.COMPLETION_DATE.getField() + ":" + dateStr; } } else if (parameter.getName().equals(OpenSearchQuery.GEO_BOX.getParamName())) { String bbox = parameter.getValue(); if (bbox != null && !bbox.isEmpty()) { pieceOfQuery = MetacatalogField.GEOGRAPHICAL_EXTENT.getField() + ":" + getGeometryCriteria(bbox); } } if (pieceOfQuery != null) { if (!first) { queryStr += " AND "; } first = false; queryStr += pieceOfQuery; } } if (queryStr.isEmpty()) { queryStr = "*"; } solrQuery.setQuery(queryStr); }
From source file:fr.cnes.sitools.metacatalogue.thesaurus.ThesaurusTestUtils.java
License:Open Source License
private void assertNbRecords(SolrServer server, int nbRecords) throws SolrServerException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); QueryResponse rsp = server.query(solrQuery); SolrDocumentList listDoc = rsp.getResults(); assertEquals(nbRecords, listDoc.getNumFound()); }
From source file:fr.cnes.sitools.thesaurus.fuzzy.ThesaurusFuzzySearcher.java
License:Open Source License
public List<Concept> search(String query, Context context) { List<Concept> concepts = new ArrayList<Concept>(); SolrServer server = (SolrServer) context.getAttributes().get(ContextAttributes.INDEXER_SERVER); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(query); try {/*from w ww . j a v a2 s. com*/ QueryResponse rsp = server.query(solrQuery); SolrDocumentList listDoc = rsp.getResults(); for (SolrDocument solrDocument : listDoc) { concepts.add(parseConcepts(solrDocument)); } } catch (SolrServerException e) { e.printStackTrace(); return null; } return concepts; }
From source file:fr.gael.dhus.search.SearchResult.java
License:Open Source License
void initQuery() { if (query == null) { SolrQuery query = new SolrQuery(); query.setQuery(BOOST_FUNCTION_SECTION + squery); query.setRows(fetchSize);//from w ww. ja va 2 s. co m if (this.filterQuery != null) { query.addFilterQuery(this.filterQuery); } if (Boolean.parseBoolean(System.getProperty("solr.filter.user", "false"))) { SecurityService secuService = ApplicationContextProvider.getBean(SecurityService.class); User user = secuService.getCurrentUser(); if (user == null) { user = ApplicationContextProvider.getBean(UserDao.class).getRootUser(); } query.add(SolrUtils.CURRENT_USER_ID, user.getId().toString()); } QueryResponse rsp; try { rsp = server.query(query, SolrRequest.METHOD.POST); } catch (SolrServerException e) { logger.error("Error in query \"" + query + "\" : " + e.getMessage()); totalResults = 0; this.query = query; return; // throw new DHusSearchException ("Cannot execute query", e); } catch (SolrException e) { logger.error("Error in query \"" + query + "\" : " + e.getMessage()); totalResults = 0; this.query = query; return; // throw new DHusSearchException ("Cannot execute query", e); } totalResults = rsp.getResults().getNumFound(); this.query = query; } }
From source file:fr.gael.dhus.service.SearchService.java
License:Open Source License
/** * Search./*from w w w .j a va 2 s . c o m*/ * <p> * Set `start` and `rows` values in the SolrQuery parameter to paginate the results.<br> * <strong>If no `rows` have been set, solr will only return 10 documents, no more.</strong> * <p> * To get the total number of document matching the given query, use {@code res.getNumFound()}. * * @param query a SolrQuery with at least a 'q' parameter set. * @return A list of solr document matching the given query. */ @PreAuthorize("hasRole('ROLE_SEARCH')") public SolrDocumentList search(SolrQuery query) { Objects.requireNonNull(query); query.setQuery(solrDao.updateQuery(query.getQuery())); try { return solrDao.search(query).getResults(); } catch (SolrServerException | IOException ex) { LOGGER.error(ex); throw new DHusSearchException("An exception occured while searching", ex); } }
From source file:fr.hoteia.qalingo.core.solr.service.impl.CategorySolrServiceImpl.java
License:Apache License
/** * //ww w . j a v a 2s. c om */ public CategoryResponseBean searchCategory() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*"); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("name"); solrQuery.addFacetField("code"); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); request.setPath(getRequestPath()); QueryResponse response = new QueryResponse(solrServer.request(request), solrServer); List<CategorySolr> productSolrList = response.getBeans(CategorySolr.class); List<FacetField> productSolrFacetFieldList = response.getFacetFields(); CategoryResponseBean categoryResponseBean = new CategoryResponseBean(); categoryResponseBean.setCategorySolrList(productSolrList); categoryResponseBean.setCategorySolrFacetFieldList(productSolrFacetFieldList); return categoryResponseBean; }
From source file:fr.hoteia.qalingo.core.solr.service.impl.CustomerSolrServiceImpl.java
License:Apache License
/** * //from ww w . j a v a 2s . c o m */ public CustomerResponseBean searchCustomer() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*"); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("lastname"); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); request.setPath(getRequestPath()); QueryResponse response = new QueryResponse(solrServer.request(request), solrServer); List<CustomerSolr> customerSolrList = response.getBeans(CustomerSolr.class); List<FacetField> customerSolrFacetFieldList = response.getFacetFields(); CustomerResponseBean customerResponseBean = new CustomerResponseBean(); customerResponseBean.setCustomerSolrList(customerSolrList); customerResponseBean.setCustomerSolrFacetFieldList(customerSolrFacetFieldList); return customerResponseBean; }
From source file:fr.hoteia.qalingo.core.solr.service.impl.ProductSolrServiceImpl.java
License:Apache License
/** * /*w w w.ja v a 2 s. c om*/ */ public ProductResponseBean searchProduct() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*"); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("name"); solrQuery.addFacetField("code"); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); request.setPath(getRequestPath()); QueryResponse response = new QueryResponse(solrServer.request(request), solrServer); List<ProductSkuSolr> productSkuSolrList = response.getBeans(ProductSkuSolr.class); List<FacetField> productSolrFacetFieldList = response.getFacetFields(); ProductResponseBean productResponseBean = new ProductResponseBean(); productResponseBean.setProductSolrList(productSkuSolrList); productResponseBean.setProductSolrFacetFieldList(productSolrFacetFieldList); return productResponseBean; }
From source file:fr.hoteia.qalingo.core.solr.service.impl.StoreSolrServiceImpl.java
License:Apache License
/** * /* w w w . j a v a2 s . c o m*/ */ public StoreResponseBean searchStore() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*"); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.setFacetLimit(8); solrQuery.addFacetField("businessname"); SolrRequest request = new QueryRequest(solrQuery, METHOD.POST); request.setPath(getRequestPath()); QueryResponse response = new QueryResponse(solrServer.request(request), solrServer); List<StoreSolr> storeSolrList = response.getBeans(StoreSolr.class); List<FacetField> storeSolrFacetFieldList = response.getFacetFields(); StoreResponseBean storeResponseBean = new StoreResponseBean(); storeResponseBean.setStoreSolrList(storeSolrList); storeResponseBean.setStoreSolrFacetFieldList(storeSolrFacetFieldList); return storeResponseBean; }