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:org.dspace.app.cris.statistics.CrisSolrLogger.java

@Override
public SolrDocumentList getRawData(int type) throws SolrServerException {

    if (type >= CrisConstants.CRIS_TYPE_ID_START) {

        SolrQuery query = new SolrQuery();
        query.setQuery("*:*");
        query.setFilterQueries("type:" + type);
        query.setRows(Integer.MAX_VALUE);
        query.setFields("ip", "id", "sectionid", "type", "time", "dns", "epersonid", "isBot", "userAgent");
        QueryResponse resp = getSolr().query(query);
        return resp.getResults();

    } else {/*from w  w w. j  a v a  2 s.  c  om*/
        return super.getRawData(type);
    }

}

From source file:org.dspace.app.cris.ws.AWSServices.java

private SolrQuery buildQuery(String query, String start, String limit, User userWS, String type,
        String... projection) {/*from  w  w w  .  j a v a 2  s.  c  o  m*/

    SolrQuery solrQuery = new SolrQuery();
    int resource_type = getSupportedType();

    solrQuery.setQuery(query);
    solrQuery.setStart(Integer.parseInt(start));
    solrQuery.setRows(Integer.parseInt(limit));

    internalBuildFieldList(solrQuery, projection);

    solrQuery.addFilterQuery("search.resourcetype:" + resource_type);
    for (Criteria criteria : userWS.getCriteria()) {
        if (type.equals(criteria.getCriteria())) {
            // parse criteria follow solr form:
            // "fq=type:bllababl&fq=text:balglballlbab"
            List<String> result = new ArrayList<String>();
            if (criteria.getFilter() != null && !criteria.getFilter().isEmpty()) {
                // Split
                String[] fqs = criteria.getFilter().split("&");
                for (String fq : fqs) {
                    // remove prefix
                    String newfq = fq.replaceFirst("fq=", "");
                    result.add(newfq); // add to tmp list
                }
                // add fq
                solrQuery.addFilterQuery(result.toArray(new String[result.size()]));
            }
        }
    }
    return solrQuery;
}

From source file:org.dspace.app.webui.cris.components.statistics.ASolrStatsConfigurerComponent.java

public PieStatisticBean generateCategoryView(SolrServer server, String key1, String key2, String key3,
        Integer hitsNumber, String query, Map<String, String> subQueries, String id) {
    PieStatisticBean pieStatisticBean = new PieStatisticBean(key1, key2, key3);
    pieStatisticBean.setName(key2);/*from   w  ww  .ja v a  2s. c o  m*/
    Collection<StatisticDatasBeanRow> fullData = new ArrayList<StatisticDatasBeanRow>();
    Collection<StatisticDatasBeanRow> limitedData = new ArrayList<StatisticDatasBeanRow>();
    try {
        int totalHit = 0;
        for (String key : subQueries.keySet()) {
            String q = "";
            try {
                String name = key;
                SolrQuery solrQuery = new SolrQuery();
                q = query + " AND (" + MessageFormat.format(subQueries.get(key), null, id) + ")";
                solrQuery.setQuery(q);
                if (StringUtils.isEmpty(name))
                    name = "Unknown";

                int count = new Long(server.query(solrQuery).getResults().getNumFound()).intValue();
                limitedData.add(new StatisticDatasBeanRow(name, count));
                totalHit += count;

            } catch (Exception e) {
                limitedData.add(new StatisticDatasBeanRow(_NotAvailable, null));
                e.printStackTrace();
            }
        }

        pieStatisticBean.setHits(totalHit);
        pieStatisticBean.setDataTable(fullData);
        pieStatisticBean.setLimitedDataTable(limitedData);
        try {
            pieStatisticBean.setPercentages();
        } catch (Exception e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        log.warn(e.getMessage());
        fullData.add(new StatisticDatasBeanRow(_NotAvailable, null));
        limitedData.add(new StatisticDatasBeanRow(_NotAvailable, null));
    }
    return pieStatisticBean;
}

From source file:org.dspace.app.webui.cris.components.statistics.StatBitstreamTopObjectComponent.java

@Override
public TwoKeyMap getLabels(Context context, String type) throws SQLException {

    TwoKeyMap labels = new TwoKeyMap();

    PieStatisticBean myvalue = (PieStatisticBean) statisticDatasBeans.get("top").get(type).get("id");
    if (myvalue != null) {
        if (myvalue.getLimitedDataTable() != null) {
            for (StatisticDatasBeanRow row : myvalue.getLimitedDataTable()) {
                Bitstream bitstream = Bitstream.find(context, Integer.parseInt(row.getLabel()));

                SolrQuery solrQuery = new SolrQuery();
                solrQuery.setQuery(getFromField() + ":" + Constants.BITSTREAM + "-" + bitstream.getID());
                try {
                    QueryResponse solrQueryResponse = crisSearchService.search(solrQuery);
                    for (SolrDocument doc : solrQueryResponse.getResults()) {
                        labels.addValue(row.getLabel(), "handle", doc.getFieldValue("handle"));
                    }//  w  w  w  .  j a  v a2s.  c om
                } catch (SearchServiceException e) {
                    log.error(e.getMessage(), e);
                }

                if (bitstream != null) {
                    labels.addValue(type, row.getLabel(), bitstream);
                }
            }
        }
    }
    return labels;

}

From source file:org.dspace.app.webui.cris.components.statistics.StatSelectedObjectComponent.java

@Override
public TreeKeyMap query(String id, HttpSolrServer solrServer) throws Exception {
    statisticDatasBeans = new TreeKeyMap();
    if (id != null && !id.equals("") && StatComponentsService.getYearsQuery() != null) {
        solrServer.setMaxRetries(0);//from w ww.  java2 s.c o m
        SolrQuery solrQuery = new SolrQuery();

        _prepareBasicQuery(solrQuery, StatComponentsService.getYearsQuery());

        if (StatComponentsService.isExcludeBot()) {
            solrQuery.addFilterQuery("-isBot:true");
        }

        Integer relationType = getRelationObjectType();
        if (relationType == null) {
            relationType = CrisConstants.getEntityType(getRelationObjectClass().newInstance());
        }
        solrQuery.addFilterQuery("type:" + relationType);

        String query = STATS_QUERY;
        if (getBean() != null) {
            String beanQuery = getBean().getQuery();
            query += (beanQuery != null && !beanQuery.isEmpty()) ? beanQuery : "";
            for (String filter : getBean().getFilters()) {
                solrQuery.addFilterQuery(filter);
            }
        }

        solrQuery.setQuery(MessageFormat.format(query, id));
        if (getBean() instanceof BeanFacetComponent) {
            BeanFacetComponent beanFacet = (BeanFacetComponent) getBean();
            solrQuery.setFacet(true);
            solrQuery.addFacetQuery(beanFacet.getFacetQuery());
            solrQuery.addFacetField(beanFacet.getFacetField());
        }
        solrResponse = solrServer.query(solrQuery);

        buildPageResultModules(StatComponentsService._SELECTED_OBJECT);
    } else {
        throw new Exception("Item Id not valid");
    }

    return statisticDatasBeans;
}

From source file:org.dspace.app.webui.cris.components.statistics.StatTopObjectComponent.java

@Override
public TreeKeyMap query(String id, HttpSolrServer solrServer) throws Exception {
    statisticDatasBeans = new TreeKeyMap();
    if (id != null && !id.equals("") && StatComponentsService.getYearsQuery() != null) {

        // HttpSolrServer solrServer = new HttpSolrServer(
        // solrConfig.getUrl()+solrCore);
        solrServer.setMaxRetries(0);/*from w ww .  j  ava 2s. c o m*/
        SolrQuery solrQuery = new SolrQuery();
        // http://localhost:8983/solr/statistics/select/?q=type%3A2&rows=20&facet=true&facet.date=time&facet.date.start=2008-07-00T00:00:00.000Z&facet.date.end=2009-06-31T00:00:00.000Z&facet.date.gap=%2B1MONTHS&facet.field=id
        _prepareBasicQuery(solrQuery, StatComponentsService.getYearsQuery());
        // _prepareTopQuery(type, id, fieldName, solrQuery);

        if (StatComponentsService.isExcludeBot()) {
            solrQuery.addFilterQuery("-isBot:true");
        }

        Integer relationType = getRelationObjectType();
        if (relationType == null) {
            relationType = CrisConstants.getEntityType(getRelationObjectClass().newInstance());
        }
        solrQuery.addFilterQuery("type:" + relationType);
        for (String filter : getBean().getFilters()) {
            solrQuery.addFilterQuery(filter);
        }
        String query = MessageFormat.format(QUERY_COMMON, getFromField(), getBean().getQuery());
        String sID = getObjectId(id);
        query = MessageFormat.format(query, sID);
        solrQuery.setQuery(query);
        if (getBean() instanceof BeanFacetComponent) {
            BeanFacetComponent beanFacet = (BeanFacetComponent) getBean();
            solrQuery.setFacet(true);
            solrQuery.addFacetQuery(beanFacet.getFacetQuery());
            solrQuery.addFacetField(beanFacet.getFacetField());
        }
        solrResponse = solrServer.query(solrQuery);
        if (!getBean().getSubQueries().isEmpty()) {
            statisticDatasBeans.addValue(TOP, CrisConstants.getEntityTypeText(relationType), CATEGORY,
                    generateCategoryView(solrServer, TOP, relationType.toString(), CATEGORY,
                            StatComponentsService.getTopCityLength(), query, getBean().getSubQueries(), sID));
        }
        buildTopResultModules(relationType);

    } else {
        throw new Exception("Object Id not valid");
    }
    return statisticDatasBeans;
}

From source file:org.dspace.app.webui.cris.controller.PJSearchFormController.java

@Override
protected Map referenceData(HttpServletRequest request) throws Exception {
    Map<String, Object> model = new HashMap<String, Object>();
    Context context = UIUtil.obtainContext(request);
    EPerson currUser = context.getCurrentUser();
    boolean isAdmin = AuthorizeManager.isAdmin(context);
    if (currUser != null) {
        model.put("researcher_page_menu", new Boolean(true));
    }/*from w  w w.ja  va 2  s. c  o  m*/
    if (isAdmin) {
        model.put("see_search_grantcode", new Boolean(true));
    }

    SolrQuery query = new SolrQuery();
    query.setQuery("disabled:false");

    query.setFacet(true);
    query.setFacetLimit(-1);
    query.setFacetMinCount(1);
    query.setFacetMissing(true);
    query.setFacetSort(FacetParams.FACET_SORT_INDEX);
    // check table name
    query.addFacetField("pjsponsor_filter");
    query.addFacetField("pjstatus_filter");
    query.setRows(0);

    QueryResponse qResponse = ((CrisSearchService) searchService).search(query);

    FacetField facetField = qResponse.getFacetField("pjsponsor_filter");

    List<DiscoverResult.FacetResult> sponsors = new ArrayList<DiscoverResult.FacetResult>();
    List<Count> values = facetField.getValues();
    if (values != null) {
        for (FacetField.Count facetValue : values) {
            DiscoverResult.FacetResult fr = searchService.getDiscoveryFacet(context, facetField, facetValue);
            sponsors.add(fr);
        }
    }
    FacetField facetFieldStatus = qResponse.getFacetField("pjstatus_filter");

    List<DiscoverResult.FacetResult> status = new ArrayList<DiscoverResult.FacetResult>();
    List<Count> valuesStatus = facetFieldStatus.getValues();
    if (valuesStatus != null) {
        for (FacetField.Count facetValue : valuesStatus) {
            DiscoverResult.FacetResult fr = searchService.getDiscoveryFacet(context, facetFieldStatus,
                    facetValue);
            status.add(fr);
        }
    }

    DiscoveryConfiguration discoveryConf = SearchUtils.getDiscoveryConfigurationByName("crisproject");

    List<String> searchFields = new LinkedList<String>();
    for (DiscoverySearchFilter field : discoveryConf.getSearchFilters()) {
        searchFields.add(field.getIndexFieldName());
    }
    model.put("state", status);
    model.put("sponsors", sponsors);
    model.put("fields", searchFields);
    return model;
}

From source file:org.dspace.app.webui.cris.controller.RPSearchFormController.java

@Override
protected Map referenceData(HttpServletRequest request) throws Exception {
    Map<String, Object> model = new HashMap<String, Object>();
    Context context = UIUtil.obtainContext(request);
    EPerson currUser = context.getCurrentUser();
    boolean isAdmin = AuthorizeManager.isAdmin(context);
    if (currUser != null) {
        model.put("researcher_page_menu", new Boolean(true));
    }//  w  ww. jav  a 2s .c om
    if (isAdmin) {
        model.put("see_search_staffno", new Boolean(true));
        model.put("see_search_rp", new Boolean(true));// not used on jsp
        // (now search for
        // RP
        // is public)
    }

    SolrQuery query = new SolrQuery();
    query.setQuery("disabled:false");

    query.setFacet(true);
    query.setFacetLimit(-1);
    query.setFacetMinCount(1);
    query.setFacetMissing(true);
    query.setFacetSort(FacetParams.FACET_SORT_INDEX);
    // check table name
    query.addFacetField("faculty_filter");
    query.setRows(0);

    QueryResponse qResponse = ((CrisSearchService) searchService).search(query);

    FacetField facetField = qResponse.getFacetField("faculty_filter");

    List<DiscoverResult.FacetResult> faculties = new ArrayList<DiscoverResult.FacetResult>();
    List<Count> values = facetField.getValues();
    if (values != null) {
        for (FacetField.Count facetValue : values) {
            DiscoverResult.FacetResult fr = searchService.getDiscoveryFacet(context, facetField, facetValue);
            faculties.add(fr);
        }
    }
    DiscoveryConfiguration discoveryConf = SearchUtils.getDiscoveryConfigurationByName("crisrp");

    List<String> searchFields = new LinkedList<String>();
    for (DiscoverySearchFilter field : discoveryConf.getSearchFilters()) {
        searchFields.add(field.getIndexFieldName());
    }
    model.put("faculties", faculties);
    model.put("fields", searchFields);
    return model;
}

From source file:org.dspace.app.webui.cris.servlet.DeptMetricsNetworkServlet.java

@Override
protected void doDSGet(Context context, HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, SQLException {

    String dept = request.getParameter("dept");

    boolean found = false;

    if (dept == null) {
        response.sendError(HttpServletResponse.SC_NOT_FOUND, "A department name could be passed as parameter");
    } else {//from w w w . j  a  v  a  2  s  . co  m
        found = true;
    }

    // load all publications
    SolrQuery solrQuery = new SolrQuery();

    List<DTOMetric> results = new ArrayList<DTOMetric>();

    String connection = ConfigurationManager.getProperty(NetworkPlugin.CFG_MODULE, "network.connection");

    String[] connections = connection.split(",");
    List<String> fieldsToRetrieve = new ArrayList<String>();
    fieldsToRetrieve.add("search.resourceid");
    fieldsToRetrieve.add("rp_fullname");
    for (String conn : connections) {
        fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_1_RETRIEVE + conn);
        fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_2_RETRIEVE + conn);
        fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_3_RETRIEVE + conn);
        fieldsToRetrieve.add(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_4_RETRIEVE + conn);
    }
    String[] fields = fieldsToRetrieve.toArray(new String[] {});
    QueryResponse rsp;
    try {
        solrQuery = new SolrQuery();
        solrQuery.setQuery("search.resourcetype:" + CrisConstants.RP_TYPE_ID + " AND rp_dept:\"" + dept + "\"");
        solrQuery.setFields(fields);
        solrQuery.setRows(Integer.MAX_VALUE);
        rsp = getService().getSearcher().search(solrQuery);

        SolrDocumentList rows = rsp.getResults();

        external: for (String conn : connections) {
            Iterator<SolrDocument> iter = rows.iterator();
            internal: while (iter.hasNext()) {
                DTOMetric metric = new DTOMetric();

                SolrDocument publication = iter.next();

                Integer rp_id = (Integer) publication.getFirstValue("search.resourceid");
                String rp_fullname = (String) publication.getFirstValue("rp_fullname");
                String averageStrength = (String) publication
                        .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_3_RETRIEVE + conn);
                String maxStrength = (String) publication
                        .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_2_RETRIEVE + conn);
                String numbersConnections = (String) publication
                        .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_1_RETRIEVE + conn);
                String quadraticVariance = (String) publication
                        .getFirstValue(ConstantNetwork.PREFIX_METADATA_BIBLIOMETRIC_4_RETRIEVE + conn);

                metric.setAuthority(ResearcherPageUtils.getPersistentIdentifier(rp_id, ResearcherPage.class));
                metric.setFullName(rp_fullname);
                metric.setType(conn);
                metric.setAverageStrength(averageStrength);
                metric.setMaxStrength(maxStrength);
                metric.setNumbersConnections(numbersConnections);
                metric.setQuadraticVariance(quadraticVariance);

                if ((averageStrength == null || averageStrength.isEmpty())
                        && (maxStrength == null || maxStrength.isEmpty())
                        && (numbersConnections == null || numbersConnections.isEmpty())
                        && (quadraticVariance == null || quadraticVariance.isEmpty())) {
                    //do not show anythings
                } else {
                    results.add(metric);
                }

            }
        }
    } catch (SearchServiceException e) {
        log.error(e.getMessage(), new ServletException(e));
    }

    request.setAttribute("dept", dept);
    request.setAttribute("metrics", results);

    JSPManager.showJSP(request, response, "/graph/dmetrics.jsp");

}

From source file:org.dspace.app.webui.cris.servlet.DeptNetworkServlet.java

private QueryResponse shootQuery(String query, boolean facet, String facetField) throws SearchServiceException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery(query);
    solrQuery.setStart(0);//from  w  w  w . ja v  a  2 s .co m
    solrQuery.setRows(0);

    if (facet) {
        solrQuery.setFacet(true);
        solrQuery.setFacetMinCount(1);
        solrQuery.addFacetField(facetField);
    }
    QueryResponse rsp = service.search(solrQuery);
    return rsp;
}