Example usage for org.apache.solr.client.solrj SolrQuery setQuery

List of usage examples for org.apache.solr.client.solrj SolrQuery setQuery

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery setQuery.

Prototype

public SolrQuery setQuery(String query) 

Source Link

Usage

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;
}