List of usage examples for org.apache.solr.client.solrj.response QueryResponse getFacetDate
public FacetField getFacetDate(String name)
From source file:edu.indiana.htrc.action.auditlog.DataAPIGeneralAction.java
License:Apache License
public String execute() { if (session.get("testsession") != null) { int x = (Integer) session.get("testsession"); session.put("testsession", ++x); }// w ww . ja va2 s . c om setErrorPage("/pages/DataAPI.jsp"); if (!Utility.validateInputDateOrder(from, to)) { return ERROR; } setDisplay("/pages/dataAPIAllResult.jsp"); String input_start_UTC = Utility.convertDate2UTC(from); String input_end_UTC = Utility.convertDate2UTC(to); Solr4Connector connector = new Solr4Connector(); SolrServer solr_server = connector.connect(); SolrQuery query = new SolrQuery(); String queryStr = "timeStamp:[" + input_start_UTC + " TO " + input_end_UTC + "]"; // " AND " + "userName:" + userName; if (userName != null) { queryStr = queryStr + " AND " + "userName:" + userName; } if (sourceIP != null) { queryStr = queryStr + " AND " + "sourceIP:" + sourceIP; } queryStr = queryStr + " AND " + "logName:" + "AUDIT-Log"; query.setQuery(queryStr).setRows(0).setFacet(true).set("facet.mincount", 1).set("facet.limit", 18) .set("facet.sort", "count").set("facet.date", "timeStamp") .set("f.timeStamp.facet.date.start", input_start_UTC) .set("f.timeStamp.facet.date.end", input_end_UTC).set("f.timeStamp.facet.date.gap", "+1DAY") .set("f.timeStamp.facet.mincount", 0).set("facet.field", fieldName); QueryResponse query_response = null; try { // logger.debug("solr_server == null is " + solr_server == null); query_response = solr_server.query(query); } catch (SolrServerException e) { // logger.debug("solr_server == null is " + solr_server == null); e.printStackTrace(); } // ///////////////////generate // charts///////////////////////////////////////// List<FacetField> facet_field_list = query_response.getFacetFields(); for (int i = 0; i < facet_field_list.size(); i++) { FacetField facet_field = facet_field_list.get(i); String field_name = facet_field.getName(); Map<String, Integer> map = Utility.getFacetFieldAsMap(facet_field); if (field_name.equals("date")) { FacetField facet_date = query_response.getFacetDate("timeStamp"); Map<String, Integer> UTC_detail_time_map = Utility.getFacetFieldAsMap(facet_date); Map<String, Integer> UTC_YMD_map = Utility.convertMapFromUTCDetail2UTCYMD(UTC_detail_time_map); setTimeIntervalMap(UTC_YMD_map); // setDateMap(map); } else if (field_name.equals("sourceIP")) { setIpMap(map); } else if (field_name.equals("responseStatus")) { setResponseStatusMap(map); } else if (field_name.equals("userName")) { setUserMap(map); } } connector.disconnect(); return SUCCESS; }
From source file:edu.indiana.htrc.action.solrproxylog.SolrProxyGeneralAction.java
License:Apache License
public String execute() { setErrorPage("/pages/SolrProxy.jsp"); if (!Utility.validateInputDateOrder(from, to)) { return ERROR; }/*from ww w . jav a2 s.com*/ setDisplay("/pages/solrProxyAllResult.jsp"); String input_start_UTC = Utility.convertDate2UTC(from); String input_end_UTC = Utility.convertDate2UTC(to); Solr4Connector connector = new Solr4Connector(); SolrServer solr_server = connector.connect(); SolrQuery query = new SolrQuery(); String queryStr = "timeStamp:[" + input_start_UTC + " TO " + input_end_UTC + "]"; // " AND " + "userName:" + userName; if (sourceIP != null) { queryStr = queryStr + " AND " + "sourceIP:" + sourceIP; } if (XForward_For != null) { queryStr = queryStr + " AND " + "XForward_For:" + XForward_For; } queryStr = queryStr + " AND " + "logName:" + "SOLR-PROXY-Log"; query.setQuery(queryStr).setRows(0).setFacet(true).set("facet.mincount", 1).set("facet.limit", 18) .set("facet.sort", "count").set("facet.date", "timeStamp") .set("f.timeStamp.facet.date.start", input_start_UTC) .set("f.timeStamp.facet.date.end", input_end_UTC).set("f.timeStamp.facet.date.gap", "+1DAY") .set("f.timeStamp.facet.mincount", 0).set("facet.field", fieldName); QueryResponse query_response = null; try { // logger.debug("solr_server == null is " + solr_server == null); query_response = solr_server.query(query); } catch (SolrServerException e) { // logger.debug("solr_server == null is " + solr_server == null); e.printStackTrace(); } // ///////////////////generate charts///////////////////////////////////////// List<FacetField> facet_field_list = query_response.getFacetFields(); for (int i = 0; i < facet_field_list.size(); i++) { FacetField facet_field = facet_field_list.get(i); String field_name = facet_field.getName(); Map<String, Integer> map = Utility.getFacetFieldAsMap(facet_field); if (field_name.equals("date")) { FacetField facet_date = query_response.getFacetDate("timeStamp"); Map<String, Integer> UTC_detail_time_map = Utility.getFacetFieldAsMap(facet_date); Map<String, Integer> UTC_YMD_map = Utility.convertMapFromUTCDetail2UTCYMD(UTC_detail_time_map); setTimeIntervalMap(UTC_YMD_map); //setDateMap(map); } else if (field_name.equals("sourceIP")) { setIpMap(map); } else if (field_name.equals("responseStatus")) { setResponseStatusMap(map); } else if (field_name.equals("XForward_For")) { setXForward_ForMap(map); } } connector.disconnect(); return SUCCESS; }
From source file:org.dspace.statistics.SolrLogger.java
License:BSD License
/** * Query used to get values grouped by the date. * /* w ww . j a va 2 s . c o m*/ * @param query * the query to be used * @param max * the max number of values given back (in case of 10 the top 10 * will be given) * @param dateType * the type to be used (example: DAY, MONTH, YEAR) * @param dateStart * the start date Format:(-3, -2, ..) the date is calculated * relatively on today * @param dateEnd * the end date stop Format (-2, +1, ..) the date is calculated * relatively on today * @param showTotal * a boolean determining whether the total amount should be given * back as the last element of the array * @return and array containing our results * @throws SolrServerException * ... */ public static ObjectCount[] queryFacetDate(String query, String filterQuery, int max, String dateType, String dateStart, String dateEnd, boolean showTotal, Context context) throws SolrServerException { QueryResponse queryResponse = query(query, filterQuery, null, 0, max, dateType, dateStart, dateEnd, null, null, false); if (queryResponse == null) { return new ObjectCount[0]; } FacetField dateFacet = queryResponse.getFacetDate("time"); // TODO: check if this cannot crash I checked it, it crashed!!! // Create an array for our result ObjectCount[] result = new ObjectCount[dateFacet.getValueCount() + (showTotal ? 1 : 0)]; // Run over our datefacet & store all the values for (int i = 0; i < dateFacet.getValues().size(); i++) { FacetField.Count dateCount = dateFacet.getValues().get(i); result[i] = new ObjectCount(); result[i].setCount(dateCount.getCount()); result[i].setValue(getDateView(dateCount.getName(), dateType, context)); } if (showTotal) { result[result.length - 1] = new ObjectCount(); result[result.length - 1].setCount(queryResponse.getResults().getNumFound()); // TODO: Make sure that this total is gotten out of the msgs.xml result[result.length - 1].setValue("total"); } return result; }
From source file:org.dspace.statistics.SolrLoggerServiceImpl.java
License:BSD License
@Override public ObjectCount[] queryFacetDate(String query, String filterQuery, int max, String dateType, String dateStart, String dateEnd, boolean showTotal, Context context) throws SolrServerException { QueryResponse queryResponse = query(query, filterQuery, null, 0, max, dateType, dateStart, dateEnd, null, null, false);/*from w w w .ja v a 2s .c om*/ if (queryResponse == null) { return new ObjectCount[0]; } FacetField dateFacet = queryResponse.getFacetDate("time"); // TODO: check if this cannot crash I checked it, it crashed!!! // Create an array for our result ObjectCount[] result = new ObjectCount[dateFacet.getValueCount() + (showTotal ? 1 : 0)]; // Run over our datefacet & store all the values for (int i = 0; i < dateFacet.getValues().size(); i++) { FacetField.Count dateCount = dateFacet.getValues().get(i); result[i] = new ObjectCount(); result[i].setCount(dateCount.getCount()); result[i].setValue(getDateView(dateCount.getName(), dateType, context)); } if (showTotal) { result[result.length - 1] = new ObjectCount(); result[result.length - 1].setCount(queryResponse.getResults().getNumFound()); // TODO: Make sure that this total is gotten out of the msgs.xml result[result.length - 1].setValue("total"); } return result; }