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

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

Introduction

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

Prototype

public SolrQuery setFacet(boolean b) 

Source Link

Document

enable/disable faceting.

Usage

From source file:org.kuali.ole.docstore.engine.service.rest.DocstoreRestClient_UT.java

License:Open Source License

public void searchBibWithFacets(String facetSort) throws Exception {
    String[] facets = { "Author_facet", "Format_facet", "Genre_facet", "Language_facet",
            "PublicationDate_facet", "PublicationDate_sort" };
    String[] fieldList = { "LocalId_display", "Title_sort", "Title_display", "JournalTitle_display",
            "Author_display", "Publisher_display", "ISBN_display", "ISSN_display", "Subject_display",
            "Publisher_display", "PublicationDate_display", "Edition_display", "Format_display",
            "Language_display", "Description_display", "FormGenre_display", "DocFormat", "staffOnlyFlag",
            "bibIdentifier", "holdingsIdentifier" };
    String args = "(DocType:bibliographic)AND((*:*))";
    SolrServer solr = SolrServerManager.getInstance().getSolrServer();
    SolrQuery query = new SolrQuery();
    query.setQuery(args);//from  ww w. jav a 2  s  .com
    query.setFacet(true);
    query.addFacetField(facets);
    query.setFacetMinCount(1);
    query.setFacetSort(facetSort);
    query.setFacetLimit(5);
    query.setFields(fieldList);
    query.set("facet.offset", "0");
    QueryResponse response = solr.query(query);
    System.out.println("Search result count " + response.getResults().getNumFound()
            + " and  time taken to search is " + response.getQTime());
}

From source file:org.lareferencia.xoai.services.impl.xoai.LRSetRepository.java

License:BSD License

private List<FacetField.Count> getFacetValues(String facetFieldName) {

    try {//from   w  ww  . java  2 s.  co  m

        SolrQuery query = new SolrQuery("*:*");
        query.setRows(0);
        query.setFacet(true);
        query.addFacetField(facetFieldName);

        QueryResponse response = solrServer.query(query);

        return response.getFacetFields().get(0).getValues();

    } catch (SolrServerException e) {

        log.error(e.getMessage(), e);

        e.printStackTrace();
    }

    List<FacetField.Count> list = new ArrayList<FacetField.Count>();

    return list;
}

From source file:org.mousephenotype.cda.indexers.MPIndexer.java

License:Apache License

private RunStatus populateMpCallMaps(Map<String, Synonym> synonyms)
        throws IOException, SolrServerException, URISyntaxException, JSONException {
    RunStatus status = new RunStatus();

    List<SolrClient> ss = new ArrayList<>();

    ss.add(genotypePhenotypeCore);/*from   ww  w . j a  va  2  s.c  o m*/

    for (int i = 0; i < ss.size(); i++) {

        SolrClient solrSvr = ss.get(i);
        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");
        query.setFacet(true);
        query.setRows(0);
        query.addFacetField(GenotypePhenotypeDTO.MP_TERM_ID);
        query.addFacetField(GenotypePhenotypeDTO.INTERMEDIATE_MP_TERM_ID);
        query.addFacetField(GenotypePhenotypeDTO.TOP_LEVEL_MP_TERM_ID);
        query.setFacetLimit(-1);

        for (FacetField facetGroup : solrSvr.query(query).getFacetFields()) {
            for (FacetField.Count facet : facetGroup.getValues()) {
                if (!mpCalls.containsKey(facet.getName())) {
                    mpCalls.put(facet.getName(), new Long(0));

                    Map<String, Integer> geneVariantCount = getPhenotypeGeneVariantCounts(facet.getName(),
                            status, synonyms);
                    int gvCount = geneVariantCount.get("sumCount");
                    mpGeneVariantCount.put(facet.getName(), gvCount);
                }
                mpCalls.put(facet.getName(), facet.getCount() + mpCalls.get(facet.getName()));

            }
        }
    }

    return status;
}

From source file:org.mousephenotype.cda.solr.repositories.image.ImagesSolrJ.java

License:Apache License

private QueryResponse runFacetQuery(String query, String facetField, int start, int length, String filterQuery)
        throws SolrServerException, IOException {

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(query);/*w  w  w. j a v a 2s . c  o m*/
    solrQuery.setStart(start);
    solrQuery.setRows(length);
    solrQuery.setFacet(true);
    solrQuery.setFacetMinCount(1);
    solrQuery.addFacetField(facetField);
    if (filterQuery != "") {
        solrQuery.addFilterQuery(filterQuery);
    }

    return sangerImagesCore.query(solrQuery);

}

From source file:org.mousephenotype.cda.solr.service.AlleleService.java

License:Apache License

/**
 *
 * @param geneIds the input set of gene ids
 * @param statusField the status field/*from  ww w  . j ava 2  s .co  m*/
 * @return Number of genes (from the provided list) in each status of interest.
 */
public HashMap<String, Long> getStatusCount(Set<String> geneIds, String statusField) {

    HashMap<String, Long> res = new HashMap<>();
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;

    if (geneIds != null) {
        String geneQuery = AlleleDTO.MGI_ACCESSION_ID + ":("
                + StringUtils.join(geneIds, " OR ").replace(":", "\\:") + ")";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }
    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            res.put(c.getName(), c.getCount());
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }

    return res;
}

From source file:org.mousephenotype.cda.solr.service.AlleleService.java

License:Apache License

public TreeMap<String, Long> getStatusCountByPhenotypingCenter(String center, String statusField) {

    TreeMap<String, Long> res = new TreeMap<>(new PhenotypingStatusComparator());
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;/*from   ww w .  j a  v  a 2  s  .c o  m*/

    if (center != null) {
        String geneQuery = AlleleDTO.LATEST_PHENOTYPING_CENTRE + ":\"" + center + "\"";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }

    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            // We don't want to show everything
            if (!(c.getName().equalsIgnoreCase("Cre Excision Started") || c.getName().equals(""))) {
                res.put(c.getName(), c.getCount());
            }
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}

From source file:org.mousephenotype.cda.solr.service.AlleleService.java

License:Apache License

public TreeMap<String, Long> getStatusCountByProductionCenter(String center, String statusField) {

    TreeMap<String, Long> res = new TreeMap<>(new ProductionStatusComparator());
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;/*ww  w . j  av a  2  s.  co  m*/

    if (center != null) {
        String geneQuery = AlleleDTO.LATEST_PRODUCTION_CENTRE + ":\"" + center + "\"";
        solrQuery.setQuery(geneQuery);
    } else {
        solrQuery.setQuery("*:*");
    }

    solrQuery.setRows(1);
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    try {
        solrQuery.addFacetField(statusField);
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(statusField).getValues()) {
            // We don't want to show everything
            if (!c.getName().equals("")) {
                res.put(c.getName(), c.getCount());
            }
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}

From source file:org.mousephenotype.cda.solr.service.AlleleService.java

License:Apache License

public Set<String> getFacets(String field) {
    SolrQuery solrQuery = new SolrQuery();
    QueryResponse solrResponse;//from   w w w .ja  va 2s. c om
    Set<String> res = new HashSet<>();
    solrQuery.setQuery("*:*");
    solrQuery.setFacet(true);
    solrQuery.setFacetLimit(-1);
    solrQuery.addFacetField(field);

    logger.info(this.getClass().getEnclosingMethod() + "   " + SolrUtils.getBaseURL(alleleCore) + "/select?"
            + solrQuery);

    try {
        solrResponse = alleleCore.query(solrQuery);
        for (Count c : solrResponse.getFacetField(field).getValues()) {
            res.add(c.getName());
        }
    } catch (SolrServerException | IOException e) {
        e.printStackTrace();
    }
    return res;
}

From source file:org.mousephenotype.cda.solr.service.ExpressionService.java

License:Apache License

private QueryResponse getAdultLaczImageFacetsForGene(String mgiAccession, String parameterStableId,
        String... fields) throws SolrServerException, IOException {

    //solrQuery.addFilterQuery(ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\" OR " + ImageDTO.PARAMETER_NAME
    //      + ":\"LacZ Images Wholemount\"");// reduce the number to image
    // e.g.//from w  w w .  ja  v  a  2 s .  co  m
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=gene_accession_id:%22MGI:1920455%22&facet=true&facet.field=selected_top_level_ma_term&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)
    // for embryo data the fields would be like this
    // "parameter_name": "LacZ images section",
    // "procedure_name": "Embryo LacZ",

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");
    if (!StringUtils.isEmpty(parameterStableId)) {
        solrQuery.addFilterQuery(ImageDTO.PARAMETER_STABLE_ID + ":" + parameterStableId);// reduce the number to image
        // parameters only as we are
        // talking about images not
        // expression data here
    }
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacet(true);
    solrQuery.setFields(fields);
    solrQuery.addFacetField(ImageDTO.SELECTED_TOP_LEVEL_ANATOMY_TERM);
    solrQuery.setRows(Integer.MAX_VALUE);
    QueryResponse response = impcImagesCore.query(solrQuery);
    return response;
}

From source file:org.mousephenotype.cda.solr.service.ExpressionService.java

License:Apache License

public List<Count> getLaczCategoricalParametersForGene(String mgiAccession, String... fields)
        throws SolrServerException, IOException {
    // e.g.//from w  ww . java 2 s .  co  m
    // http://ves-ebi-d0.ebi.ac.uk:8090/mi/impc/dev/solr/impc_images/select?q=gene_accession_id:%22MGI:1920455%22&facet=true&facet.field=selected_top_level_ma_term&fq=(parameter_name:%22LacZ%20Images%20Section%22%20OR%20parameter_name:%22LacZ%20Images%20Wholemount%22)
    // for embryo data the fields would be like this
    // "parameter_name": "LacZ images section",
    // "procedure_name": "Embryo LacZ",

    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(ImageDTO.GENE_ACCESSION_ID + ":\"" + mgiAccession + "\"");

    solrQuery.addFilterQuery(ImageDTO.PROCEDURE_NAME + ":\"Adult LacZ\"");
    solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Section\"");
    solrQuery.addFilterQuery("-" + ImageDTO.PARAMETER_NAME + ":\"LacZ Images Wholemount\"");
    solrQuery.addFilterQuery(ObservationDTO.CATEGORY + ":\"expression\"");
    // only look for expresssion at the moment as that is all the anatamogram can  display
    solrQuery.setFacetMinCount(1);
    solrQuery.setFacet(true);
    solrQuery.setFields(fields);
    solrQuery.addFacetField(ImageDTO.PARAMETER_STABLE_ID);
    solrQuery.setRows(0);
    QueryResponse response = experimentCore.query(solrQuery);
    List<FacetField> categoryParameterFields = response.getFacetFields();

    return categoryParameterFields.get(0).getValues();
}