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

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

Introduction

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

Prototype

public ModifiableSolrParams set(String name, String... val) 

Source Link

Document

Replace any existing parameter with the given name.

Usage

From source file:uk.ac.ebi.phis.service.ChannelService.java

License:Apache License

public String getChannelAsJsonString(String channelId, Integer resNo) {
    SolrQuery solrQuery = new SolrQuery();
    channelId = handleSpecialCharacters(channelId);
    solrQuery.setQuery(ChannelDTO.ID + ":\"" + channelId + "\"");
    if (resNo != null) {
        solrQuery.setRows(resNo);//from   w ww. j a va 2  s  . co m
    } else {
        solrQuery.setRows(10000);
    }
    solrQuery.set("wt", "json");

    System.out.println("------ ChannelPojo" + getQueryUrl(solrQuery));

    try {
        return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return "Couldn't get anything back from solr.";
}

From source file:uk.ac.ebi.phis.service.ChannelService.java

License:Apache License

public String getChannels(String imageId, Integer resNo) {

    SolrQuery solrQuery = new SolrQuery();
    imageId = handleSpecialCharacters(imageId);
    solrQuery.setQuery(ChannelDTO.ASSOCIATED_IMAGE + ":\"" + imageId + "\"");

    if (resNo != null) {
        solrQuery.setRows(resNo);//  w  ww  .ja  v  a  2 s.  co m
    } else {
        solrQuery.setRows(10000);
    }
    solrQuery.set("wt", "json");

    try {
        return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return "getChannels : Couldn't get anything back from solr.";
}

From source file:uk.ac.ebi.phis.service.ImageService.java

License:Apache License

public String getImages(String term, String phenotype, String mutantGene, String anatomy, String expressedGene,
        String sex, String taxon, String imageType, String sampleType, String stage, String visualisationMethod,
        String samplePreparation, String imagingMethod, Integer rows, Integer start, String genericGene,
        String chromosome, String strand, Long position, Long startPosition, Long endPosition, String hostName)
        throws SolrServerException, PhisQueryException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("*:*");
    // boosted queries
    String bq = "";
    String qf = "";
    if (term != null) {
        solrQuery.setQuery("(" + ImageDTO.GENERIC_SEARCH + ":" + handleSpecialCharacters(term) + " OR "
                + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":" + handleSpecialCharacters(term) + ")");
        if (term.contains(" ")) {
            String[] splittedQuery = term.split(" ");
            String query = ImageDTO.GENERIC_SEARCH + ":" + org.apache.commons.lang3.StringUtils
                    .join(splittedQuery, "^10 " + ImageDTO.GENERIC_SEARCH + ":");
            bq += ImageDTO.GENERIC_SEARCH + ":\"" + term + "\"^100 " + handleSpecialCharacters(query) + " "
                    + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":\"" + term + "\"^1 "
                    + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":" + org.apache.commons.lang3.StringUtils
                            .join(splittedQuery, "^0.1 " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":");
            qf += ImageDTO.GENERIC_SEARCH;
        } else {//from w w w  .  ja va2 s . co m
            solrQuery.addFilterQuery("(" + ImageDTO.GENERIC_SEARCH + ":" + handleSpecialCharacters(term)
                    + " OR " + ImageDTO.GENERIC_SEARCH_ANCESTORS + ":" + handleSpecialCharacters(term) + ")");
        }
    }
    if (phenotype != null) {
        phenotype = handleSpecialCharacters(phenotype);
        bq += ImageDTO.PHENOTYPE_ID_BAG + ":\"" + phenotype + "\"^100 " + ImageDTO.PHENOTYPE_FREETEXT_BAG
                + ":\"" + phenotype + "\"^70 " + ImageDTO.PHENOTYPE_LABEL_BAG + ":\"" + phenotype + "\"^100 "
                + ImageDTO.PHENOTYPE_ANCESTORS + ":\"" + phenotype + "\"^0.001 "
                + ImageDTO.PHENOTYPE_SYNONYMS_BAG + ":\"" + phenotype + "\"^0.1 ";
        solrQuery.addFilterQuery(ImageDTO.PHENOTYPE_ID_BAG + ":\"" + phenotype + "\" OR "
                + ImageDTO.PHENOTYPE_FREETEXT_BAG + ":\"" + phenotype + "\" OR " + ImageDTO.PHENOTYPE_LABEL_BAG
                + ":\"" + phenotype + "\" OR " + ImageDTO.PHENOTYPE_ANCESTORS + ":\"" + phenotype + "\"");
    }
    if (visualisationMethod != null) {
        visualisationMethod = handleSpecialCharacters(visualisationMethod);
        bq += ImageDTO.VISUALISATION_METHOD_ID + ":\"" + visualisationMethod + "\"^100 "
                + ImageDTO.VISUALISATION_METHOD_LABEL + ":\"" + visualisationMethod + "\"^100 "
                + ImageDTO.VISUALISATION_METHOD_ANCESTORS + ":\"" + visualisationMethod + "\"^0.001 ";
        solrQuery.addFilterQuery(ImageDTO.VISUALISATION_METHOD_ID + ":\"" + visualisationMethod + "\" OR "
                + ImageDTO.VISUALISATION_METHOD_LABEL + ":\"" + visualisationMethod + "\" OR "
                + ImageDTO.VISUALISATION_METHOD_ANCESTORS + ":\"" + visualisationMethod + "\"");
    }
    if (samplePreparation != null) {
        samplePreparation = handleSpecialCharacters(samplePreparation);
        bq += ImageDTO.SAMPLE_PREPARATION_ID + ":\"" + samplePreparation + "\"^100 "
                + ImageDTO.SAMPLE_PREPARATION_LABEL + ":\"" + samplePreparation + "\"^100 "
                + ImageDTO.SAMPLE_PREPARATION_ANCESTORS + ":\"" + samplePreparation + "\"^0.001 ";
        solrQuery.addFilterQuery(ImageDTO.SAMPLE_PREPARATION_ID + ":\"" + samplePreparation + "\" OR "
                + ImageDTO.SAMPLE_PREPARATION_LABEL + ":\"" + samplePreparation + "\" OR "
                + ImageDTO.SAMPLE_PREPARATION_ANCESTORS + ":\"" + samplePreparation + "\"");
    }
    if (imagingMethod != null) {
        imagingMethod = handleSpecialCharacters(imagingMethod);
        bq = ImageDTO.IMAGING_METHOD_LABEL_ANALYSED + ":\"" + imagingMethod + "\"^100 "
                + ImageDTO.IMAGING_METHOD_ID + ":\"" + imagingMethod + "\"^100 "
                + ImageDTO.IMAGING_METHOD_ANCESTORS + ":\"" + imagingMethod + "\"^0.001 ";
        solrQuery.addFilterQuery(ImageDTO.IMAGING_METHOD_LABEL_ANALYSED + ":\"" + imagingMethod + "\" OR "
                + ImageDTO.IMAGING_METHOD_ID + ":\"" + imagingMethod + "\" OR "
                + ImageDTO.IMAGING_METHOD_ANCESTORS + ":\"" + imagingMethod + "\"");
    }
    if (anatomy != null) {
        anatomy = handleSpecialCharacters(anatomy);
        bq += ImageDTO.GENERIC_ANATOMY + ":\"" + anatomy + "\"^100 " + ImageDTO.GENERIC_ANATOMY_ANCESTORS
                + ":\"" + anatomy + "\"^0.001 ";
        solrQuery.addFilterQuery(ImageDTO.GENERIC_ANATOMY + ":\"" + anatomy + "\" OR "
                + ImageDTO.GENERIC_ANATOMY_ANCESTORS + ":\"" + anatomy + "\"");
    }
    if (!bq.equals("")) {
        solrQuery.set("defType", "edismax");
        solrQuery.set("bq", bq);
    }
    if (!qf.equals("")) {
        solrQuery.set("qf", qf);
    }
    // Non-boosted queries
    if (mutantGene != null) {
        mutantGene = handleSpecialCharacters(mutantGene);
        solrQuery.addFilterQuery(ImageDTO.GENE_ID + ":\"" + mutantGene + "\" OR " + ImageDTO.GENE_SYMBOL + ":\""
                + mutantGene + "\"");
    }
    if (hostName != null) {
        solrQuery.addFilterQuery(ImageDTO.HOST_NAME + ":\"" + hostName + "\"");
    }
    if (genericGene != null) {
        genericGene = handleSpecialCharacters(genericGene);
        solrQuery.addFilterQuery(ImageDTO.GENE_ID + ":\"" + genericGene + "\" OR " + ImageDTO.GENE_SYMBOL
                + ":\"" + genericGene + "\" OR " + ImageDTO.EXPRESSED_GF_ID_BAG + ":\"" + genericGene + "\" OR "
                + ImageDTO.EXPRESSED_GF_SYMBOL_BAG + ":\"" + genericGene + "\" OR "
                + ImageDTO.MUTANT_GENE_ID_BAG + ":\"" + genericGene + "\" OR " + ImageDTO.MUTANT_GENE_SYMBOL_BAG
                + ":\"" + genericGene + "\" OR " + ImageDTO.MUTANT_GENE_SYNONYMS_BAG + ":\"" + genericGene
                + "\"");
    }
    if (expressedGene != null) {
        expressedGene = handleSpecialCharacters(expressedGene);
        solrQuery.addFilterQuery(ImageDTO.EXPRESSED_GF_ID_BAG + ":\"" + expressedGene + "\" OR "
                + ImageDTO.EXPRESSED_GF_SYMBOL_BAG + ":\"" + expressedGene + "\"");
    }
    if (taxon != null) {
        taxon = handleSpecialCharacters(taxon);
        solrQuery.addFilterQuery(
                ImageDTO.TAXON + ":\"" + taxon + "\" OR " + ImageDTO.NCBI_TAXON_ID + ":\"" + taxon + "\"");
    }
    if (imageType != null) {
        imageType = handleSpecialCharacters(imageType);
        solrQuery.addFilterQuery(ImageDTO.IMAGE_TYPE + ":\"" + imageType + "\"");
    }
    if (sampleType != null) {
        sampleType = handleSpecialCharacters(sampleType);
        solrQuery.addFilterQuery(ImageDTO.SAMPLE_TYPE + ":\"" + sampleType + "\"");
    }
    if (stage != null) {
        stage = handleSpecialCharacters(stage);
        solrQuery.addFilterQuery(ImageDTO.STAGE + ":\"" + stage + "\" OR " + ImageDTO.STAGE_ID + ":\"" + stage
                + "\" OR " + ImageDTO.STAGE_ANCESTORS + ":\"" + stage + "\" OR " + ImageDTO.STAGE_FACET + ":\""
                + stage + "\"");
    }
    if (sex != null) {
        sex = handleSpecialCharacters(sex);
        solrQuery.addFilterQuery(ImageDTO.SEX + ":\"" + sex + "\"");
    }
    if (chromosome != null) {
        solrQuery.addFilterQuery(ImageDTO.CHROMOSOME + ":" + chromosome);
    }
    if (position != null) {
        solrQuery.addFilterQuery("(" + ImageDTO.END_POS + ":[* TO " + position + "] AND " + ImageDTO.START_POS
                + ":[" + position + " TO *])");
    }
    if (strand != null) {
        solrQuery.addFilterQuery(ImageDTO.STRAND + ":\"" + strand + "\"");
    }
    if (startPosition != null && endPosition != null) {
        solrQuery.addFilterQuery(ImageDTO.START_POS + ":[" + startPosition + " TO " + endPosition + "] OR "
                + ImageDTO.END_POS + ":[" + startPosition + " TO " + endPosition + "]");
        ;
    } else if (startPosition != null && endPosition == null || startPosition == null && endPosition != null) {
        throw new PhisQueryException(PhisQueryException.START_END_POS);
    }
    if (rows != null) {
        solrQuery.setRows(rows);
    } else
        solrQuery.setRows(100);

    if (start != null) {
        solrQuery.set("start", start);
    }
    solrQuery.set("wt", "json");
    solrQuery.setFacet(true);
    solrQuery.addFacetField(ImageDTO.STAGE_FACET);
    solrQuery.addFacetField(ImageDTO.IMAGING_METHOD_LABEL);
    solrQuery.addFacetField(ImageDTO.TAXON);
    solrQuery.addFacetField(ImageDTO.SAMPLE_TYPE);
    solrQuery.addFacetField(ImageDTO.IMAGE_GENERATED_BY);
    solrQuery.addFacetField(ImageDTO.HOST_NAME);
    solrQuery.addFacetField(ImageDTO.IMAGE_TYPE);
    solrQuery.setFacetMinCount(0);

    solrQuery.set("facet.pivot.mincount", 0);

    // add pivot facets to get the number of image types per 
    solrQuery.set("facet.pivot", ImageDTO.SAMPLE_TYPE + "," + ImageDTO.IMAGE_TYPE);

    System.out.println("\nSolr URL : " + solr.getBaseURL() + "/select?" + solrQuery);
    log.info("Solr URL in getImages : " + solr.getBaseURL() + "/select?" + solrQuery);

    try {
        return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return "Couldn't get anything back from solr.";
}

From source file:uk.ac.ebi.phis.service.ImageService.java

License:Apache License

public String getImageAsJsonString(String imageId) {
    SolrQuery solrQuery = new SolrQuery();
    imageId = handleSpecialCharacters(imageId);
    solrQuery.setQuery(ImageDTO.ID + ":\"" + imageId + "\"");
    solrQuery.set("wt", "json");

    System.out.println("------ ImagePojo" + getQueryUrl(solrQuery));

    try {// ww  w.j  a v  a2s.  c o  m
        return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return "Is this a valid id? Couldn't get anything back from solr.";
}

From source file:uk.ac.ebi.phis.service.RoiService.java

License:Apache License

public String getRoiAsJsonString(String roiId, Integer resNo) {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("*:*");
    roiId = handleSpecialCharacters(roiId);
    solrQuery.setFilterQueries(RoiDTO.ID + ":\"" + roiId + "\"");
    if (resNo != null) {
        solrQuery.setRows(resNo);//www. ja  v a  2  s.c  o  m
    } else {
        solrQuery.setRows(10000);
    }
    solrQuery.set("wt", "json");

    System.out.println("------ ROI" + getQueryUrl(solrQuery));

    try {
        return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return "Couldn't get anything back from solr.";
}

From source file:uk.ac.ebi.phis.service.RoiService.java

License:Apache License

public String getRois(String imageId, String roiId, String owner, String group, String createdAfter,
        String createdBefore, String lastEditAfter, String lastEditBefore, Integer resNo) {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("*:*");
    imageId = handleSpecialCharacters(imageId);
    if (imageId != null) {
        solrQuery.setFilterQueries(RoiDTO.ASSOCIATED_IMAGE_ID + ":\"" + imageId + "\"");
    }// www. j  a v a 2s .  c  o m
    if (roiId != null) {
        solrQuery.addFilterQuery(RoiDTO.ID + ":\"" + roiId + "\"");
    }
    if (owner != null) {
        solrQuery.addFilterQuery(RoiDTO.USER_OWNER + ":\"" + owner + "\"");
    }
    if (group != null) {
        solrQuery.addFilterQuery(RoiDTO.USER_GROUP + ":\"" + group + "\"");
    }
    if (lastEditAfter != null) {
        if (lastEditBefore != null) {
            solrQuery.addFilterQuery(RoiDTO.EDIT_DATE + ":[" + lastEditAfter + " TO " + lastEditBefore + "]");
        } else {
            solrQuery.addFilterQuery(RoiDTO.EDIT_DATE + ":[" + lastEditAfter + " TO *]");
        }
    }
    if (lastEditBefore != null) {
        if (lastEditAfter != null) {
            solrQuery.addFilterQuery(RoiDTO.EDIT_DATE + ":[" + lastEditAfter + " TO " + lastEditBefore + "]");
        } else {
            solrQuery.addFilterQuery(RoiDTO.EDIT_DATE + ":[* TO " + lastEditBefore + "]");
        }
    }
    if (createdAfter != null) {
        if (createdBefore != null) {
            solrQuery.addFilterQuery(RoiDTO.CREATION_DATE + ":[" + createdAfter + " TO " + createdBefore + "]");
        } else {
            solrQuery.addFilterQuery(RoiDTO.CREATION_DATE + ":[" + createdAfter + " TO *]");
        }
    }
    if (createdBefore != null) {
        if (createdAfter != null) {
            solrQuery.addFilterQuery(RoiDTO.CREATION_DATE + ":[" + createdAfter + " TO " + createdBefore + "]");
        } else {
            solrQuery.addFilterQuery(RoiDTO.CREATION_DATE + ":[* TO " + createdBefore + "]");
        }
    }

    if (resNo != null) {
        solrQuery.setRows(resNo);
    } else {
        solrQuery.setRows(10000);
    }
    solrQuery.set("wt", "json");

    try {
        return JSONRestUtil.getResults(getQueryUrl(solrQuery)).toString();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

    return "Couldn't get anything back from solr.";
}

From source file:uk.ac.edukapp.repository.SolrConnector.java

License:Apache License

/**
 * Execute a MoreLikeThis query on the Solr server
 * /*www .  j  a va2 s  . c o  m*/
 * @param term
 *            the match term, typically a uri: match
 * @param lang
 *            the language core to search
 * @return more widgets like the one identified by term
 */
public List<Widget> moreLikeThis(String term, String lang) {
    try {
        SolrServer server = getLocalizedSolrServer(lang);
        SolrQuery query = new SolrQuery();

        query.setQueryType("/" + MoreLikeThisParams.MLT);
        query.set(MoreLikeThisParams.MATCH_INCLUDE, false);
        query.set(MoreLikeThisParams.MIN_DOC_FREQ, 1);
        query.set(MoreLikeThisParams.MIN_TERM_FREQ, 1);
        query.set(MoreLikeThisParams.SIMILARITY_FIELDS, "title,description");
        query.setQuery(term);
        QueryResponse rsp = server.query(query);

        List<Widget> widgets = rsp.getBeans(Widget.class);
        return widgets;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return new ArrayList<Widget>();
}

From source file:uk.bl.wa.annotation.Annotator.java

License:Open Source License

private static void searchAndApplyAnnotations(Annotations ann, SurtPrefixSet oaSurts, String solrServer)
        throws SolrServerException, URISyntaxException, IOException {
    // Connect to solr:
    SolrClient solr = new HttpSolrClient(solrServer);

    // Set up annotator:
    Annotator anr = new Annotator(ann, oaSurts);

    // Loop over URL known to ACT:
    for (String scope : ann.getCollections().keySet()) {
        if ("resource".equals(scope)) {

            // Search for all matching URLs in SOLR:
            for (String uriKey : ann.getCollections().get(scope).keySet()) {
                LOG.info("Looking for URL: " + uriKey);
                SolrQuery parameters = new SolrQuery();
                parameters.set("q", "url:" + ClientUtils.escapeQueryChars(uriKey));
                searchAndApplyAnnotations(anr, solr, parameters);
            }//  ww w.  j  av a  2  s  .co m

        } else if ("root".equals(scope)) {

            // Search for all matching URLs in SOLR:
            for (String uriKey : ann.getCollections().get(scope).keySet()) {
                LOG.info("Looking for URLs starting with: " + uriKey);
                SolrQuery parameters = new SolrQuery();
                parameters.set("q", "url:" + ClientUtils.escapeQueryChars(uriKey) + "*");
                searchAndApplyAnnotations(anr, solr, parameters);
            }

        } else {
            LOG.warn("Ignoring annotations scoped as: " + scope);
        }
    }

    // And commit:
    solr.commit();

}