Example usage for org.apache.solr.client.solrj.response FieldStatsInfo FieldStatsInfo

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

Introduction

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

Prototype

public FieldStatsInfo(NamedList<Object> nl, String fname) 

Source Link

Usage

From source file:au.org.ala.biocache.web.ChartController.java

License:Open Source License

private void insertZeros(List<Map> seriesFqs) {
    if (seriesFqs.size() > 1) {
        //build list
        List all = new ArrayList();
        for (Map s : seriesFqs) {
            List data = (List) s.get("data");
            for (Object o : data) {
                if (o instanceof FieldStatsItem) {
                    all.add(((FieldStatsItem) o).getLabel());
                } else if (o instanceof FieldResultDTO) {
                    all.add(((FieldResultDTO) o).getLabel());
                }//from   w  w  w . ja v a  2s  .  c  o  m
            }
        }

        //insert zeros
        Map m = new HashMap();
        m.put("count", 0L);
        for (Map s : seriesFqs) {
            Set<String> current = new HashSet(all);
            List data = (List) s.get("data");
            boolean fieldStatsItem = false;
            for (Object o : data) {
                if (o instanceof FieldStatsItem) {
                    fieldStatsItem = true;
                    current.remove(((FieldStatsItem) o).getLabel());
                } else if (o instanceof FieldResultDTO) {
                    current.remove(((FieldResultDTO) o).getLabel());
                }
            }

            for (String c : current) {
                if (fieldStatsItem) {
                    data.add(new FieldStatsItem(new FieldStatsInfo(new NamedList<>(m), c)));
                } else {
                    data.add(new FieldResultDTO(c, 0));
                }
            }
            //sort
            Collections.sort(data, new Comparator() {
                @Override
                public int compare(Object o1, Object o2) {
                    String label1 = "", label2 = "";
                    if (o1 instanceof FieldStatsItem) {
                        label1 = ((FieldStatsItem) o1).getLabel();
                        label2 = ((FieldStatsItem) o2).getLabel();
                    } else if (o1 instanceof FieldResultDTO) {
                        label1 = ((FieldResultDTO) o1).getLabel();
                        label2 = ((FieldResultDTO) o2).getLabel();
                    }
                    if (label1 == null)
                        label1 = "";
                    if (label2 == null)
                        label2 = "";
                    return label1.compareTo(label2);
                }
            });

            s.put("data", data);
        }
    }
}

From source file:org.springframework.data.solr.core.ResultHelperTests.java

License:Apache License

/**
 * @see DATASOLR-160//from ww  w. j a va  2s. co  m
 */
@Test
public void testConvertSingleFieldStatsInfoToStatsResultMap() {

    Map<String, FieldStatsInfo> fieldStatsInfos = new HashMap<String, FieldStatsInfo>();

    NamedList<Object> nl = createFieldStatNameList("min", "max", 20D, 10L, 5L, 22.5D, 15.5D, 1D);

    fieldStatsInfos.put("field", new FieldStatsInfo(nl, "field"));

    Map<String, FieldStatsResult> converted = ResultHelper
            .convertFieldStatsInfoToFieldStatsResultMap(fieldStatsInfos);

    FieldStatsResult fieldStatsResult = converted.get("field");

    Assert.assertEquals("min", fieldStatsResult.getMin());
    Assert.assertEquals("max", fieldStatsResult.getMax());
    Assert.assertEquals(Double.valueOf(20), fieldStatsResult.getSum());
    Assert.assertEquals(Double.valueOf(22.5), fieldStatsResult.getMean());
    Assert.assertEquals(Long.valueOf(10), fieldStatsResult.getCount());
    Assert.assertEquals(Long.valueOf(5), fieldStatsResult.getMissing());
    Assert.assertEquals(Double.valueOf(15.5), fieldStatsResult.getStddev());
    Assert.assertEquals(Double.valueOf(1D), fieldStatsResult.getSumOfSquares());
}

From source file:org.springframework.data.solr.core.ResultHelperTests.java

License:Apache License

/**
 * @see DATASOLR-160//from  w  w w  .j ava2 s  . c o m
 */
@Test
public void testConvertFieldStatsInfoMapWithEmptyNamedListToStatsResultMap() {

    Map<String, FieldStatsResult> converted = ResultHelper.convertFieldStatsInfoToFieldStatsResultMap(
            Collections.<String, FieldStatsInfo>singletonMap("field",
                    new FieldStatsInfo(new NamedList<Object>(), "field")));

    Assert.assertThat(converted, IsNull.notNullValue());
    Assert.assertThat(converted.keySet(), IsIterableContainingInOrder.contains("field"));
}

From source file:org.springframework.data.solr.core.ResultHelperTests.java

License:Apache License

/**
 * @see DATASOLR-160/*www  .  jav  a  2 s.  c  o m*/
 */
@Test
public void testConvertFieldStatsInfoToStatsResultMap() {

    Map<String, FieldStatsInfo> fieldStatsInfos = new HashMap<String, FieldStatsInfo>();

    NamedList<Object> values = new NamedList<Object>();
    NamedList<Object> facets = new NamedList<Object>();
    NamedList<Object> nl = createFieldStatNameList("min", "max", 20D, 10L, 5L, 22.5D, 15.5D, 1D);
    nl.add("facets", facets);
    facets.add("facetField", values);
    values.add("value1", createFieldStatNameList("f1v1min", "f1v1max", 110D, 111L, 112L, 113D, 11.3D, 1D));
    values.add("value2", createFieldStatNameList("f1v2min", "f1v2max", 120D, 121L, 122L, 123D, 12.3D, 1D));

    fieldStatsInfos.put("field", new FieldStatsInfo(nl, "field"));

    // convert
    Map<String, FieldStatsResult> converted = ResultHelper
            .convertFieldStatsInfoToFieldStatsResultMap(fieldStatsInfos);

    // field
    FieldStatsResult fieldStatsResult = converted.get("field");
    Assert.assertEquals("min", fieldStatsResult.getMin());
    Assert.assertEquals("max", fieldStatsResult.getMax());
    Assert.assertEquals(Double.valueOf(20), fieldStatsResult.getSum());
    Assert.assertEquals(Double.valueOf(22.5), fieldStatsResult.getMean());
    Assert.assertEquals(Long.valueOf(10), fieldStatsResult.getCount());
    Assert.assertEquals(Long.valueOf(5), fieldStatsResult.getMissing());
    Assert.assertEquals(Double.valueOf(15.5), fieldStatsResult.getStddev());

    // facets
    Map<String, Map<String, StatsResult>> facetStatsResults = fieldStatsResult.getFacetStatsResults();
    Assert.assertEquals(1, facetStatsResults.size());

    // facet field
    Map<String, StatsResult> facetStatsResult = facetStatsResults.get("facetField");
    Assert.assertNotNull(facetStatsResult);

    // facet values
    StatsResult facetValue1StatsResult = facetStatsResult.get("value1");
    Assert.assertEquals("f1v1min", facetValue1StatsResult.getMin());
    Assert.assertEquals("f1v1max", facetValue1StatsResult.getMax());
    Assert.assertEquals(Double.valueOf(110), facetValue1StatsResult.getSum());
    Assert.assertEquals(Double.valueOf(113), facetValue1StatsResult.getMean());
    Assert.assertEquals(Long.valueOf(111), facetValue1StatsResult.getCount());
    Assert.assertEquals(Long.valueOf(112), facetValue1StatsResult.getMissing());
    Assert.assertEquals(Double.valueOf(11.3), facetValue1StatsResult.getStddev());

    StatsResult facetValue2StatsResult = facetStatsResult.get("value2");
    Assert.assertEquals("f1v2min", facetValue2StatsResult.getMin());
    Assert.assertEquals("f1v2max", facetValue2StatsResult.getMax());
    Assert.assertEquals(Double.valueOf(120), facetValue2StatsResult.getSum());
    Assert.assertEquals(Double.valueOf(123), facetValue2StatsResult.getMean());
    Assert.assertEquals(Long.valueOf(121), facetValue2StatsResult.getCount());
    Assert.assertEquals(Long.valueOf(122), facetValue2StatsResult.getMissing());
    Assert.assertEquals(Double.valueOf(12.3), facetValue2StatsResult.getStddev());
}