Example usage for org.apache.solr.client.solrj.response QueryResponse getFacetDate

List of usage examples for org.apache.solr.client.solrj.response QueryResponse getFacetDate

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.response QueryResponse getFacetDate.

Prototype

public FacetField getFacetDate(String name) 

Source Link

Usage

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;
}