List of usage examples for org.apache.solr.client.solrj SolrQuery setQuery
public SolrQuery setQuery(String query)
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; }